VDBSimpleDebuggerConsoleApplication.st
author Jan Vrany <jan.vrany@labware.com>
Mon, 30 May 2022 14:18:03 +0100
changeset 264 23960fcb9dac
parent 241 9996050286c5
permissions -rw-r--r--
Relicense under MIT license.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
     2
jv:libgdbs - GNU Debugger Interface Library
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
     4
Copyright (C) 2021-2022 LabWare
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
     5
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
     6
Permission is hereby granted, free of charge, to any person obtaining a copy
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
     7
of this software and associated documentation files (the 'Software'), to deal
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
     8
in the Software without restriction, including without limitation the rights
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
     9
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    10
copies of the Software, and to permit persons to whom the Software is
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    11
furnished to do so, subject to the following conditions:
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    13
The above copyright notice and this permission notice shall be included in all
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    14
copies or substantial portions of the Software.
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    16
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    17
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    18
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    19
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    20
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    21
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    22
SOFTWARE.
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
"{ Package: 'jv:vdb' }"
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"{ NameSpace: Smalltalk }"
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    28
VDBAbstractConsoleApplication subclass:#VDBSimpleDebuggerConsoleApplication
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
    29
	instanceVariableNames:'prompt promptPrinted running ignoreNextLogEvent'
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	classVariableNames:''
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
    31
	poolDictionaries:'GDBCommandStatus'
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    32
	category:'VDB-UI-Console'
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    35
!VDBSimpleDebuggerConsoleApplication class methodsFor:'documentation'!
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
copyright
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
"
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    39
jv:libgdbs - GNU Debugger Interface Library
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
Copyright (C) 2015-now Jan Vrany
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    41
Copyright (C) 2021-2022 LabWare
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    42
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    43
Permission is hereby granted, free of charge, to any person obtaining a copy
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    44
of this software and associated documentation files (the 'Software'), to deal
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    45
in the Software without restriction, including without limitation the rights
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    46
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    47
copies of the Software, and to permit persons to whom the Software is
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    48
furnished to do so, subject to the following conditions:
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    50
The above copyright notice and this permission notice shall be included in all
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    51
copies or substantial portions of the Software.
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
264
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    53
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    54
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    55
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    56
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    57
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    58
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23960fcb9dac Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    59
SOFTWARE.
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
"
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
documentation
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
""
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
! !
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    67
!VDBSimpleDebuggerConsoleApplication class methodsFor:'accessing'!
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
115
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 94
diff changeset
    69
defaultWindowTitle
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 94
diff changeset
    70
    ^ self resources string: 'Debugger Console'
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "Created: / 08-01-2018 / 18:59:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
115
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 94
diff changeset
    73
    "Modified: / 03-10-2018 / 15:39:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
! !
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    76
!VDBSimpleDebuggerConsoleApplication class methodsFor:'startup-web applications'!
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    78
initialPageSpec
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    79
    "this is only required for web-applications"
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    81
    ^ self shouldImplement
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    82
!
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    83
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    84
pageSpecs
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    85
    "this is only required for web-applications"
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    86
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    87
    ^ self shouldImplement
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
! !
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    90
!VDBSimpleDebuggerConsoleApplication methodsFor:'actions'!
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    92
doComplete: line
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    93
    "Called when a user triggers a command completion (usually by pressing
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    94
     tab)"
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    95
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    96
    | command |
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    97
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    98
    command := GDBMI_complete arguments: (Array with: line).
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
    99
    debugger send: command andWithResultDo: [ :result |
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   100
        result isDone ifTrue:[ 
170
cd9615ebe6a9 Update simple console implementation to use updated -complete command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   101
            consoleView completion: (result propertyAt: #completion) matches: (result propertyAt: #matches)
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   102
        ].
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   103
    ].
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   105
    "Created: / 30-12-2018 / 22:01:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   106
    "Modified: / 25-01-2019 / 22:03:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
170
cd9615ebe6a9 Update simple console implementation to use updated -complete command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   107
    "Modified: / 12-06-2019 / 18:27:04 / jv"
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   108
!
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   109
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   110
doFire: aString
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   111
    "Executes entered command"
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   112
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   113
    | cmd |
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   114
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   115
    promptPrinted := false.
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   116
    consoleView cr.
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   117
    aString isEmptyOrNil ifTrue:[ 
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   118
        self showPrompt.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   119
        ^ self.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   120
    ].
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   121
    cmd := GDBCommand parse: aString.
145
3b9ab4badbff Oops, fixed bug introduced by previous commit (44f5e1c314b3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   122
    cmd isCLICommand ifTrue:[ 
3b9ab4badbff Oops, fixed bug introduced by previous commit (44f5e1c314b3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   123
        "/ If CLI command is one of the execution commands, run 
3b9ab4badbff Oops, fixed bug introduced by previous commit (44f5e1c314b3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   124
        "/ the command in background. This allows user to interrupt 
3b9ab4badbff Oops, fixed bug introduced by previous commit (44f5e1c314b3)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   125
        "/ it, among other things.
144
315d72d8dc4e Execute CLI execution commands in background mode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 143
diff changeset
   126
        "/
315d72d8dc4e Execute CLI execution commands in background mode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 143
diff changeset
   127
        "/ See GDB manual, Section 5.5.3 Background Execution
315d72d8dc4e Execute CLI execution commands in background mode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 143
diff changeset
   128
148
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   129
        (#('run' 'attach') includes: cmd operation) ifTrue:[ 
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   130
            "/ Sigh, background command execution is not supported by some
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   131
            "/ targets, most notably by Windows native target. However, at this
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   132
            "/ point we don't know which target we will use therefore we cannot
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   133
            "/ check target features. 
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   134
            "/ 
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   135
            "/ Therefore make a guess and assime we gonna use native target.
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   136
            "/ This is so bad, this *absolutely* has to be fixed somehow.
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   137
            cmd runOnBackground: debugger nativeTargetHasFeatureAsync.
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   138
        ] ifFalse:[ (#('step' 'stepi' 'next' 'nexti' 'continue' 'until' 'finish' 'rn' 'rns' 'rs' 'rsi' 'rc') includes: cmd operation) ifTrue:[ 
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   139
            debugger hasFeatureAsync ifTrue:[
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   140
                cmd runOnBackground: true.      
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   141
            ].
7d2d523173af Workaround: assume native target when issuing `run` or `attach` commands using simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   142
        ]].
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   143
    ].
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   144
    consoleView readOnly:true. 
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   145
    ignoreNextLogEvent := true.
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   146
    debugger send:cmd andWithResultDo:[:result| 
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   147
        result isError ifTrue:[ 
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   148
            consoleView showCR: 'ERROR: ', (result propertyAt: #msg).
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   149
        ].
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   150
        consoleView readOnly:false.
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   151
        ignoreNextLogEvent := false.
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   152
        self showPrompt.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   153
    ].
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   154
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   155
    "Created: / 25-01-2019 / 12:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   156
    "Modified: / 13-03-2019 / 14:02:22 / jv"
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   157
    "Modified: / 01-12-2019 / 21:52:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
! !
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   160
!VDBSimpleDebuggerConsoleApplication methodsFor:'aspects'!
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   162
consoleViewClass
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   163
    ^ VDBSimpleConsoleView
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   165
    "Modified: / 21-01-2019 / 14:22:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
! !
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   168
!VDBSimpleDebuggerConsoleApplication methodsFor:'event handling'!
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
136
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   170
onCmdParamChanged: event
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   171
    event name = 'prompt' ifTrue:[
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   172
        prompt := event value
136
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   173
    ].
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   174
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   175
    "Created: / 19-01-2019 / 22:13:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   176
!
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   177
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   178
onEventSetProcessingFinished: event
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   179
    consoleView readOnly: running.
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   180
    running ifFalse:[self showPrompt].
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   181
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   182
    "Created: / 01-12-2019 / 20:24:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   183
!
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   184
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   185
onLogOutputEvent: event
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   186
    ignoreNextLogEvent ifTrue:[
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   187
        ignoreNextLogEvent := false.
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   188
    ] ifFalse:[
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   189
        self onStreamOutputEvent: event
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   190
    ].
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   191
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   192
    "Created: / 13-03-2019 / 13:59:39 / jv"
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   193
!
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   194
137
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   195
onRunningEvent: event
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   196
    running := true.
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   197
    consoleView readOnly: true.
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   198
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   199
    "Created: / 19-01-2019 / 23:46:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   200
!
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   201
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   202
onStoppedEvent: event
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   203
    running := false.
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   204
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   205
    "Created: / 19-01-2019 / 23:46:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   206
    "Modified: / 01-12-2019 / 20:24:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
137
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   207
!
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   208
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
onStreamOutputEvent: event
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   210
    promptPrinted ifTrue:[ consoleView cr ].
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   211
    promptPrinted := false.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   212
    consoleView show: event value
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   214
    "Created: / 11-06-2014 / 12:00:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   215
    "Modified: / 25-01-2019 / 13:36:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   216
! !
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   217
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   218
!VDBSimpleDebuggerConsoleApplication methodsFor:'hooks'!
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   219
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   220
postBuildConsoleView: aTextCollector
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   221
    consoleView := aTextCollector scrolledView.
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   222
    consoleView readOnly: true;       
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   223
                font: CodeView defaultFont;
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   224
                foregroundColor: Color white
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   225
                backgroundColor: Color black;
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   226
                cursorForegroundColor: Color white
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   227
                      backgroundColor: Color white.
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   228
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   229
    "Modified: / 08-01-2018 / 19:16:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
! !
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   232
!VDBSimpleDebuggerConsoleApplication methodsFor:'initialization & release'!
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   234
initialize
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   235
    super initialize.
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   236
    prompt := '(gdb) '.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   237
    promptPrinted := false.
137
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   238
    running := false.
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   239
    ignoreNextLogEvent := false
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   240
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   241
    "Created: / 10-06-2014 / 01:23:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   242
    "Modified: / 25-01-2019 / 22:01:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   243
    "Modified: / 13-03-2019 / 14:01:53 / jv"
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   244
!
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   245
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   246
initializeConsoleView: view
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   247
    super initializeConsoleView: view.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   248
    consoleView acceptAction: [ :command | self doFire: command ].
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   249
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   250
    "Created: / 25-01-2019 / 12:13:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   251
    "Modified: / 25-01-2019 / 22:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   252
!
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   253
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   254
initializeConsoleView: aTerminalView forDebugger: aGDBDebugger
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   255
    super initializeConsoleView: aTerminalView forDebugger: aGDBDebugger.
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   256
    consoleView clear.       
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   257
    consoleView completeAction: nil.  
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   258
    (aGDBDebugger notNil) ifTrue:[ 
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   259
        prompt := debugger getParameter: 'prompt'.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   260
        self showPrompt.
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   261
        (aGDBDebugger hasCommand:'-complete') ifTrue:[ 
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   262
            consoleView completeAction: [ :command | self doComplete: command ]
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   263
        ].
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   264
    ] ifFalse:[ 
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   265
        prompt := '(gdb) '
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   266
    ].
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   267
139
c619cc458fb1 Factored out common console code into (new) `VDBAbstractConsoleApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   268
    "Created: / 21-01-2019 / 15:33:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   269
    "Modified: / 25-01-2019 / 22:35:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   270
!
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   271
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
subscribe   
241
9996050286c5 Always call `super subscribe` when overriding
Jan Vrany <jan.vrany@labware.com>
parents: 190
diff changeset
   273
    super subscribe.
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
    debugger announcer 
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   276
"/        when: GDBCommandEvent           send: #onCommandEvent:          to: self;
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   277
"/        when: GDBCommandResultEvent     send: #onCommandResultEvent:    to: self;
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
137
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   279
        when: GDBRunningEvent           send: #onRunningEvent:          to: self;
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   280
        when: GDBStoppedEvent           send: #onStoppedEvent:          to: self;
241
9996050286c5 Always call `super subscribe` when overriding
Jan Vrany <jan.vrany@labware.com>
parents: 190
diff changeset
   281
        when: GDBEventSequenceProcessingFinished
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   282
                                        send: #onEventSetProcessingFinished:
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   283
                                                                        to: self;
137
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   284
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   285
        when: GDBConsoleOutputEvent     send: #onStreamOutputEvent:     to: self;
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   286
        when: GDBLogOutputEvent         send: #onLogOutputEvent:        to: self;
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   287
        when: GDBTargetOutputEvent      send: #onStreamOutputEvent:     to: self;
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   288
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   289
        when: GDBCmdParamChangedEvent   send: #onCmdParamChanged:       to: self.
136
285c33a15fd2 UI: in simple console use prompt defined by GDB parameter 'prompt'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   290
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   291
    running := debugger inferiors anySatisfy:[ :tg | tg isRunning and:[ tg isStopped not ] ].
137
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   292
132
a1dededebc0b UX: add initial support for command completion in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   293
    "Created: / 06-06-2014 / 21:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
149
adaffe052a41 Show log output in simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 148
diff changeset
   294
    "Modified: / 13-03-2019 / 13:59:19 / jv"
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   295
    "Modified: / 01-12-2019 / 20:24:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
241
9996050286c5 Always call `super subscribe` when overriding
Jan Vrany <jan.vrany@labware.com>
parents: 190
diff changeset
   296
    "Modified: / 17-11-2021 / 16:39:05 / Jan Vrany <jan.vrany@labware.com>"
9996050286c5 Always call `super subscribe` when overriding
Jan Vrany <jan.vrany@labware.com>
parents: 190
diff changeset
   297
    "Modified (comment): / 18-11-2021 / 16:24:47 / Jan Vrany <jan.vrany@labware.com>"
137
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   298
! !
418e6ddd8733 UX: simple console: do not show prompt while inferior is running and console read only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   299
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   300
!VDBSimpleDebuggerConsoleApplication methodsFor:'private'!
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   301
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   302
showCR: aString
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   303
    consoleView show: aString; cr.
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   304
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   305
    "Created: / 01-12-2019 / 21:52:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   306
!
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   307
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   308
showPrompt
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   309
    (running not and: [promptPrinted not]) ifTrue:[
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   310
        consoleView nextPutAll: prompt.
143
df7f89efd39d A complete rewrite of simple console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   311
        promptPrinted := true.
71
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   312
    ].
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   313
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   314
    "Created: / 18-09-2014 / 23:18:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7329192efb9d Win32: ressurected console implementation from 0db4a162853f
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
   315
    "Modified: / 04-04-2018 / 23:01:24 / jv"
190
f37694040277 UX: various little improvements in simple debugger console
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 170
diff changeset
   316
    "Modified: / 01-12-2019 / 11:57:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
52
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
! !
956f5bcac948 Win32: initial support for Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
127
37d9f13932c2 Renamed `VDBWindowsDebuggerConole*` to `VDBSimpleDebuggerConsole*`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   319
!VDBSimpleDebuggerConsoleApplication class methodsFor:'documentation'!
70
66ae724f4269 Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 52
diff changeset
   320
66ae724f4269 Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 52
diff changeset
   321
version_HG
66ae724f4269 Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 52
diff changeset
   322
66ae724f4269 Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 52
diff changeset
   323
    ^ '$Changeset: <not expanded> $'
66ae724f4269 Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 52
diff changeset
   324
! !
66ae724f4269 Win32: minor fix in debugger console application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 52
diff changeset
   325