GDBLocalProcess.st
author Jan Vrany <jan.vrany@labware.com>
Thu, 07 Dec 2023 12:33:31 +0000
changeset 322 1b26d0a9560c
parent 293 d1422e1ee1bd
permissions -rw-r--r--
Emit and handle (custom) `-register-changed` notification This commit adds new (custom) asynchronous notification about register value being changed. Standard GDB does not notify MI clients about register value being changed when debugging (for example, by CLI command `set $rax = 1` or via Python's `Value.assign()`). This caused libgdb's register value cache being out of sync. In the past, this was partially worked around by manually emiting the notification on `GDBRegisterWithValue` APIs, but this did not (and could not) handle the case register was changed from GDB command line. To solve this problem, this commit installs a custom Python event handler that emits new GDB/MI notification - `-register-changed` - whenever a register changes after debugee is stopped. This has been enabled by upstream GDB commit 4825fd "gdb/python: implement support for sending custom MI async notifications" On libgdbs side, complete inferior state is invalidated. In theory, one could carefully invalidate only the changed `GDBRegisterWithValue` but in certain cases this could also change the backtrace (for example, if one updates stack pointer) or position in code. So it seems safer to just invalidate everything.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:libgdbs - GNU Debugger Interface Library
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
     4
Copyright (C) 2022-2023 LabWare
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
     6
Permission is hereby granted, free of charge, to any person obtaining a copy
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
     7
of this software and associated documentation files (the 'Software'), to deal
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
     8
in the Software without restriction, including without limitation the rights
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
     9
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    10
copies of the Software, and to permit persons to whom the Software is
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    11
furnished to do so, subject to the following conditions:
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    13
The above copyright notice and this permission notice shall be included in all
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    14
copies or substantial portions of the Software.
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    16
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    17
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    18
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    19
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    20
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    21
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    22
SOFTWARE.
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
"{ Package: 'jv:libgdbs' }"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"{ NameSpace: Smalltalk }"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
GDBProcess subclass:#GDBLocalProcess
185
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
    29
	instanceVariableNames:'command pid'
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	classVariableNames:''
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
	poolDictionaries:''
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
    32
	category:'GDB-Internal'
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!GDBLocalProcess class methodsFor:'documentation'!
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
copyright
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
jv:libgdbs - GNU Debugger Interface Library
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
Copyright (C) 2015-now Jan Vrany
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
    41
Copyright (C) 2022-2023 LabWare
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    43
Permission is hereby granted, free of charge, to any person obtaining a copy
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    44
of this software and associated documentation files (the 'Software'), to deal
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    45
in the Software without restriction, including without limitation the rights
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    46
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    47
copies of the Software, and to permit persons to whom the Software is
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    48
furnished to do so, subject to the following conditions:
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    50
The above copyright notice and this permission notice shall be included in all
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    51
copies or substantial portions of the Software.
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    53
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    54
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    55
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    56
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    57
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    58
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 195
diff changeset
    59
SOFTWARE.
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
documentation
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    GDBLocalProcess is a specialization of GDBProcess that spawns a
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    local GDB process on a host machine. Spawning a running of GDB
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    process is ully managed by an (sub)instance of `GDBLocalProcess`
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    Due to platform differences, there are concrete variants for 
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    different platforms.
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    [author:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
        Jan Vrany <jan.vrany@fit.cvut.cz>
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    [instance variables:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    [class variables:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    [see also:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
        GDBStXUnixProcess
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
        GDBStXWindowsProcess
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
        GDBRemoteProcess
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
! !
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    86
!GDBLocalProcess class methodsFor:'instance creation'!
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    87
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    88
newWithCommand: command
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    89
    "Return a new local GDBLocalProcess suitable for this platform 
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    90
     using `command` to launch GDB.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    91
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    92
     If `command` is nil, default configured command is used
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    93
     (See GDBProcess class >> gdbExecutable)
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    94
    "
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    95
    self == GDBLocalProcess ifTrue:[
293
d1422e1ee1bd Introduce `GDBPortlib` to facilitate porting to other dialects
Jan Vrany <jan.vrany@labware.com>
parents: 272
diff changeset
    96
        OperatingSystem isUNIXlike ifTrue:[
d1422e1ee1bd Introduce `GDBPortlib` to facilitate porting to other dialects
Jan Vrany <jan.vrany@labware.com>
parents: 272
diff changeset
    97
            ^ GDBUnixProcess basicNew initializeWithCommand: command
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    98
        ].
293
d1422e1ee1bd Introduce `GDBPortlib` to facilitate porting to other dialects
Jan Vrany <jan.vrany@labware.com>
parents: 272
diff changeset
    99
        ^ GDBSimpleProcess basicNew initializeWithCommand: command
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   100
    ].
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   101
    ^ self basicNew initializeWithCommand: command
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   102
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   103
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   104
    "
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   105
     GDBProcess new release."
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   106
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   107
    "Created: / 12-12-2018 / 22:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
293
d1422e1ee1bd Introduce `GDBPortlib` to facilitate porting to other dialects
Jan Vrany <jan.vrany@labware.com>
parents: 272
diff changeset
   108
    "Modified: / 25-07-2023 / 12:50:55 / Jan Vrany <jan.vrany@labware.com>"
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   109
! !
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   110
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
!GDBLocalProcess methodsFor:'accessing'!
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
185
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   113
command
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   114
    ^ command
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   115
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   116
    "Created: / 27-03-2019 / 09:46:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   117
!
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   118
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
id
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "Return a string identification of this GDBProcess. 
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
     Used for debugging purposes only."
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    ^ pid
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
    "Created: / 19-10-2018 / 10:09:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    "Modified: / 20-10-2018 / 06:53:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
! !
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
!GDBLocalProcess methodsFor:'initialization & release'!
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   131
initialize
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   132
    "Initializes itself using default gdb command"
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   133
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   134
    self initializeWithCommand: nil
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   135
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   136
    "Created: / 12-12-2018 / 20:11:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   137
    "Modified: / 12-12-2018 / 22:17:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   138
!
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   139
185
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   140
initializeWithCommand: aString
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   141
    "Initializes itself using  given command (`aString`) to launch GDB. 
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   142
     If `aString` is nil, default configured command is used
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   143
     (See GDBProcess class >> gdbExecutable)"
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   144
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   145
    self subclassResponsibility
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   146
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   147
    "Created: / 12-12-2018 / 20:11:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
185
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   148
    "Modified (comment): / 27-03-2019 / 08:31:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   149
!
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   150
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
release
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    (pid notNil and:[pid > 1]) ifTrue:[
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
        OperatingSystem sendSignal:(OperatingSystem sigTERM) to: pid.       
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    ].
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    "Created: / 20-10-2018 / 07:12:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
! !
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
!GDBLocalProcess methodsFor:'private'!
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   161
command2argv: commandOrNil
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   162
    "Parse given `commandOrNil` string and return an array of tokens
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   163
     suitable for passing back to `exec()` family of functions.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   165
     If `commandOrNil` is `nil`, then use default GDB command.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   166
     On error, thrown GDBError.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   167
    "
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   168
195
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   169
    | cmd argv |
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   170
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   171
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   172
    commandOrNil isNil ifTrue:[ 
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   173
        cmd := self class gdbCommand.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   174
        cmd isEmptyOrNil ifTrue:[ 
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   175
            GDBError signal: 'GDB not found. Please set GDB command - `UserPreferences current gdbCommand:''...''`'.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   176
            ^ nil.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   177
        ].
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   178
    ] ifFalse:[ 
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   179
        cmd := commandOrNil.
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   180
    ].
195
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   181
    argv := self class gdbCommandParseAndValidate:cmd.
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   182
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   183
    "/ As a courtesy to the us who use GDB from build tree, try to detect
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   184
    "/ and automatically add --data-directory if no arguments are specified.
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   185
    "/ For example:
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   186
    "/ 
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   187
    "/   GDBLocalProcess basicNew command2argv: '/some/path/to/my/gdb/gdb'
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   188
    "/ 
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   189
    "/ returns
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   190
    "/ 
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   191
    "/   #('/some/path/to/my/gdb/gdb' '--data-directory' '/some/path/to/my/gdb/data-directory')
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   192
    "/ 
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   193
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   194
    argv size == 1 ifTrue:[ 
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   195
        | dir |
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   196
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   197
        dir := argv first asFilename directory.
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   198
        (dir baseName = 'gdb' and:[ (dir / 'data-directory') isDirectory ]) ifTrue:[ 
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   199
            argv := argv , (Array with: '--data-directory' with: (dir / 'data-directory') pathName)
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   200
        ].
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   201
    ].
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   202
    ^ argv
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   203
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   204
    "
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   205
    GDBLocalProcess basicNew command2argv: '/home/jv/Projects/gdb/users_jv_patches/gdb/gdb'
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   206
    GDBLocalProcess basicNew command2argv: '/home/jv/Projects/gdb/users_jv_patches/gdb/gdb -nx'
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   207
    GDBLocalProcess basicNew command2argv: '/usr/bin/gdb'
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   208
    GDBLocalProcess basicNew command2argv: 'gdb'   
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   209
    GDBLocalProcess basicNew command2argv: nil
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   210
    "
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   211
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   212
    "Created: / 17-12-2018 / 10:48:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
195
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   213
    "Modified (format): / 20-06-2019 / 11:17:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   214
!
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   215
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
exited: status
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    "Called when spawn GDB process terminates for whatever reason"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
    pid := nil.
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   219
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   220
    "/ connection may be nil if GDBProcess instance is used
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   221
    "/ on it own, without GDBConnection (such as in GDBMIDebugger)
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   222
    connection notNil ifTrue:[
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   223
        connection released: status
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   224
    ].
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    "Created: / 20-06-2014 / 21:35:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   227
    "Modified: / 19-06-2019 / 10:50:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
! !
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
185
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   230
!GDBLocalProcess methodsFor:'testing'!
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   231
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   232
isLocal
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   233
    ^ true
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   234
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   235
    "Created: / 27-03-2019 / 09:23:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   236
! !
4e1be69b39ce API: add `GDBDebugger >> process`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   237
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   238
!GDBLocalProcess class methodsFor:'documentation'!
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   239
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   240
version_HG
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   241
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   242
    ^ '$Changeset: <not expanded> $'
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   243
! !
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   244