GDBProcess.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 08 Jul 2019 12:34:18 +0100
changeset 200 e9250da35d87
parent 195 17a6f1d1cb22
child 259 651864c2aa29
permissions -rw-r--r--
API: add method for importing Python support code This can be used by VDB, VDB plugins or any other user of libgdbs to load Python support code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
91
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     1
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     2
jv:libgdbs - GNU Debugger Interface Library
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     4
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     5
This library is free software; you can redistribute it and/or
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     7
License as published by the Free Software Foundation; either
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     8
version 2.1 of the License. 
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
     9
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    10
This library is distributed in the hope that it will be useful,
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    13
Lesser General Public License for more details.
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    14
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    16
License along with this library; if not, write to the Free Software
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    18
"
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"{ Package: 'jv:libgdbs' }"
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
78
c24e7d8bc881 BUpdated build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 24
diff changeset
    21
"{ NameSpace: Smalltalk }"
c24e7d8bc881 BUpdated build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 24
diff changeset
    22
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
Object subclass:#GDBProcess
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    24
	instanceVariableNames:'connection debuggerInput debuggerOutput'
149
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    25
	classVariableNames:''
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	category:'GDB-Private'
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
91
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    30
!GDBProcess class methodsFor:'documentation'!
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    31
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    32
copyright
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    33
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    34
jv:libgdbs - GNU Debugger Interface Library
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    35
Copyright (C) 2015-now Jan Vrany
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    36
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    37
This library is free software; you can redistribute it and/or
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    38
modify it under the terms of the GNU Lesser General Public
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    39
License as published by the Free Software Foundation; either
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    40
version 2.1 of the License. 
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    41
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    42
This library is distributed in the hope that it will be useful,
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    43
but WITHOUT ANY WARRANTY; without even the implied warranty of
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    44
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    45
Lesser General Public License for more details.
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    46
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    47
You should have received a copy of the GNU Lesser General Public
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    48
License along with this library; if not, write to the Free Software
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    49
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    50
"
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    51
!
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    52
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    53
documentation
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    54
"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    55
    GDBProcess is represents a running GDB and provides access
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    56
    to MI and CLI channels (see #debuggerIput / #debuggerOutput).
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    57
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    58
    [author:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    59
        Jan Vrany <jan.vrany@fit.cvut.cz>
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    60
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    61
    [instance variables:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    62
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    63
    [class variables:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    64
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    65
    [see also:]
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    66
        GDBStXUnixProcess
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    67
        GDBStXWindowsProcess
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    68
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    69
"
91
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
    70
! !
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    71
24
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    72
!GDBProcess class methodsFor:'instance creation'!
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    73
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    74
new
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    75
    self == GDBProcess ifTrue:[
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
    76
        ^ GDBLocalProcess newWithCommand: nil  
163
f882d9048b54 Renamed `GDBStXWindowsProcess` to `GDBStXSimpleProcess`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 153
diff changeset
    77
    ] ifFalse:[
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    78
        ^ super new.
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    79
    ].
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    80
95
f417138e9c48 Win32: initial support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
    81
    "
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
    82
     GDBProcess new release."
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
    83
95
f417138e9c48 Win32: initial support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
    84
    "Modified (comment): / 11-01-2018 / 23:02:11 / jv"
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
    85
    "Modified: / 12-12-2018 / 22:22:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    86
! !
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    87
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    88
!GDBProcess class methodsFor:'accessing'!
24
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
    89
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
    90
gdbCommand
149
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    91
    | exe |
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    92
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
    93
    exe := UserPreferences current gdbCommand.
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
    94
    exe isNil ifTrue:[ 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
    95
        exe := self gdbCommandDefault
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
    96
    ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
    97
    ^ exe
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
    98
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
    99
    "
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   100
    GDBProcess  gdbCommand
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   101
    UserPreferences current gdbCommand: nil.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   102
    UserPreferences current gdbCommand: '/home/jv/Projects/gdb/users_jv_vdb/gdb/gdb'.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   103
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   104
      
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   105
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   106
    "
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   107
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   108
    "Created: / 13-12-2018 / 11:29:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   109
    "Modified: / 17-06-2019 / 14:21:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   110
!
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   111
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   112
gdbCommand: aString
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   113
    UserPreferences current gdbCommand: aString
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   114
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   115
    "Created: / 13-12-2018 / 11:29:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   116
!
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   117
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   118
gdbCommandDefault
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   119
    "Return default path to `gdb` command or nil if no
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   120
     suitable `gdb` executable is found"
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   121
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   122
    | exe |
149
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   123
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   124
    "/ On Windows, look for MSYS2 installation and
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   125
    "/ try to pick GDB matching current arch (i686
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   126
    "/ or x86_64) since on Windows, there's no GDB
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   127
    "/ supporting both targets :-(
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   128
    OperatingSystem isMSWINDOWSlike ifTrue:[ 
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   129
        ExternalAddress pointerSize == 8 ifTrue:[
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   130
            exe := 'C:\msys64\mingw64\bin\gdb.exe'.
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   131
            exe asFilename exists ifTrue:[ ^ exe ].
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   132
            exe := 'C:\msys64\usr\bin\gdb.exe'.
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   133
            exe asFilename exists ifTrue:[ ^ exe ].
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   134
        ] ifFalse:[
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   135
            exe := 'C:\msys64\mingw32\bin\gdb.exe'.
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   136
            exe asFilename exists ifTrue:[ ^ exe ].
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   137
        ]
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   138
    ].
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   139
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   140
    "/ Search for `gdb` along the PATH...
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   141
    exe := OperatingSystem pathOfCommand: 'gdb'.
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   142
    exe notNil ifTrue:[ ^ exe ].   
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   143
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   144
    "/ Nothing found :-(
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   145
    ^ nil
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   146
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   147
    "
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   148
    GDBProcess  gdbCommand
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   149
    UserPreferences current gdbCommand: nil.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   150
    UserPreferences current gdbCommand: '/home/jv/Projects/gdb/users_jv_vdb/gdb/gdb'.
149
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   151
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   152
      
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   153
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   154
    "
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   155
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   156
    "Created: / 17-06-2019 / 14:20:14 / 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: 163
diff changeset
   157
!
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   158
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   159
gdbCommandParseAndValidate:command 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   160
    "Given a `command`, checks whether it is a valid gdb command.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   161
     Returns absolute path to gdb binary and global arguments (if any)
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   162
     or raise an GDBError if `command` is not valid hg command."
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   163
    
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   164
    | tokens  executable  executableAsFilename  arguments  version |
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   165
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   166
    command isEmptyOrNil ifTrue:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   167
        GDBError 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   168
            raiseErrorString:('''gdb'' executable not configured and not found in standard places!!').
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   169
        ^ nil
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   170
    ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   171
    command asFilename exists ifTrue:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   172
        executable := command.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   173
        arguments := #().
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   174
    ] ifFalse:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   175
        tokens := GDBShellCommandParser parse:command.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   176
        executable := tokens first.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   177
        arguments := tokens copyFrom:2.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   178
    ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   179
    executableAsFilename := executable asFilename.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   180
    executableAsFilename isAbsolute ifFalse:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   181
        executableAsFilename := executableAsFilename asAbsoluteFilename.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   182
        executableAsFilename exists ifTrue:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   183
            executable := executableAsFilename pathName.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   184
        ] ifFalse:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   185
            "/ Also try to find specified command along PATH, maybe somebody
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   186
            "/ just typed 'gdb' in...
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   187
            executable := (OperatingSystem pathOfCommand:executable).
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   188
            executable isNil ifTrue:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   189
                GDBError 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   190
                    raiseErrorString:('''gdb'' executable (%1) not found!!' bindWith:command).
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   191
                ^ nil
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   192
            ] ifFalse:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   193
                executableAsFilename := executable asFilename.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   194
            ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   195
        ]
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   196
    ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   197
    executableAsFilename exists ifFalse:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   198
        GDBError 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   199
            raiseErrorString:('Specified ''gdb'' executable (%1) does not exists!!' 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   200
                    bindWith:executable).
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   201
        ^ nil
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   202
    ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   203
    executableAsFilename isDirectory ifTrue:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   204
        GDBError 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   205
            raiseErrorString:('Specified ''gdb'' executable (%1) is actually a directory!!' 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   206
                    bindWith:executable).
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   207
        ^ nil
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   208
    ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   209
    executableAsFilename isExecutable ifFalse:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   210
        GDBError 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   211
            raiseErrorString:('Specified ''gdb'' executable (%1) is cannot be executed!!' 
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   212
                    bindWith:executable).
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   213
        ^ nil
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   214
    ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   215
     "
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   216
     [
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   217
     version := self gdbVersionOf: executable arguments: arguments.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   218
     ] on: Error do:[:ex |
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   219
     HGInvalidExecutableError newException
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   220
     parameter: ex;
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   221
     messageText: 'Failed to check version: ', ex description;
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   222
     raise.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   223
     ^ nil
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   224
     ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   225
     (self gdbVersionIsSupported: version) ifFalse:[
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   226
     HGInvalidVersionError newException
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   227
     parameter: version;
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   228
     messageText: ('Unsuported Mercurial version (%1)' bindWith: ((version collect:[:e|e printString]) asStringWith:$.));
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   229
     raise.
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   230
     ^ nil
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   231
     ].
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   232
    "
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   233
    ^ (Array with:executable) , arguments
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   234
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   235
    "
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   236
     GDBProcess  gdbCommand
195
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   237
     GDBProcess gdbCommandParseAndValidate: 'gdb'
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   238
     GDBProcess gdbCommandParseAndValidate: 'gdb -q'
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   239
"
195
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   240
193
2aa0074479d9 Add (utility) `GDBProcess >> gdbCommandParseAndValidate:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 167
diff changeset
   241
    "Created: / 18-06-2019 / 10:26:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
195
17a6f1d1cb22 Autodetect GDB data directory
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   242
    "Modified (comment): / 20-06-2019 / 11:06:01 / 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: 163
diff changeset
   243
!
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   244
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   245
gdbExecutable
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   246
    <resource: #obsolete>
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   247
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   248
    self obsoleteFeatureWarning: 'Renamed to #gdbCommand'.
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   249
    ^ self gdbCommand
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   250
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   251
    "Created: / 01-03-2015 / 08:07:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
149
0db2ccc6da7b Refactor configuration and autodetection of gdb executable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   252
    "Modified (comment): / 07-10-2018 / 07:59:57 / jv"
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   253
    "Modified: / 13-12-2018 / 11:33:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   254
!
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   255
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   256
gdbExecutable: aString
164
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   257
     <resource: #obsolete>
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   258
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   259
    self obsoleteFeatureWarning: 'Renamed to #gdbCommand'.   
a16705f64a64 Add support for arbitrary (shell) command to launch GDB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   260
    self gdbCommand: aString
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   261
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   262
    "Created: / 01-03-2015 / 08:07:20 / 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: 163
diff changeset
   263
    "Modified: / 13-12-2018 / 11:33:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   264
! !
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   265
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
!GDBProcess class methodsFor:'queries'!
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
isAbstract
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    "Return if this class is an abstract class.
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
     True is returned here for myself only; false for subclasses.
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
     Abstract subclasses must redefine again."
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
    ^ self == GDBProcess.
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
! !
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
!GDBProcess methodsFor:'accessing'!
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
24
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   278
connection:aGDBConnection
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   279
    connection := aGDBConnection.
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   280
!
98ff50f8a25d Temporary commit : initial work on session recorder (to use for simulation later)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23
diff changeset
   281
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   282
consoleInput
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   283
    "Return a write stream on debugger's CLI channel. CLI commands
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   284
     should be written here. If this process does not have a CLI
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   285
     channel opened, `nil` is returned. In this case, CLI must be
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   286
     emulated - if required. See `-interpreter-exec` MI command.
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   287
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   288
     CLI channel is generally available only on Smalltalk/X and only
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   289
     on UNIX platform where this stream points to TTY."
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   290
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   291
    ^ nil
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   292
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   293
    "Created: / 02-06-2017 / 23:35:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   294
    "Modified: / 15-12-2017 / 23:58:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   295
    "Modified (comment): / 17-10-2018 / 22:20:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   296
!
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   297
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   298
consoleOutput
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   299
    "Return a read stream on debugger's CLI channel. CLI output
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   300
     should be read from. If this process does not have a CLI
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   301
     channel opened, `nil` is returned. In this case, CLI must be
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   302
     emulated - if required.
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   303
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   304
     CLI channel is generally available only on Smalltalk/X and only
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   305
     on UNIX platform where this stream points to TTY."
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   306
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   307
    ^ nil
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   308
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   309
    "Created: / 02-06-2017 / 23:35:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   310
    "Modified: / 15-12-2017 / 23:58:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   311
    "Modified (comment): / 17-10-2018 / 22:21:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   312
!
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   313
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
debuggerInput
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   315
    "Return a write stream on debugger's MI channel. (MI) commands
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   316
     should be written there."
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   317
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   318
    ^ debuggerInput
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   319
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   320
    "Modified: / 15-12-2017 / 23:58:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   321
    "Modified (comment): / 17-10-2018 / 22:14:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
!
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
debuggerOutput
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   325
    "Return read stream on debuugger's MI channel. Command responses
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   326
     and events should be read from here"
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   327
93
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   328
    ^ debuggerOutput
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   329
b1715ebf8df1 Resurected old `GDBProcess` implementation using pipes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   330
    "Modified: / 15-12-2017 / 23:58:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   331
    "Modified (comment): / 17-10-2018 / 22:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
!
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   334
id
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   335
    "Return a string identification of this GDBProcess. 
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   336
     Used for debugging purposes only."
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   337
116
ffd185f7a357 Fix: initialize debugger features early during initialization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   338
    ^ self subclassResponsibility
ffd185f7a357 Fix: initialize debugger features early during initialization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   339
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   340
    "Created: / 19-10-2018 / 10:08:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
116
ffd185f7a357 Fix: initialize debugger features early during initialization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   341
!
ffd185f7a357 Fix: initialize debugger features early during initialization
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   342
152
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   343
nativeTargetFeatures    
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   344
    "Return default native target features. This is used when
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   345
     used GDB does not support =target-connected and =target-disconnected
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   346
     events."
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   347
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   348
    "/ Be conservative and  report no features at all...
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   349
    ^ #()
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   350
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   351
    "Created: / 09-04-2018 / 15:40:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fab425b52c21 Refactor `GDBProcess` hierarchy to improve portability
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   352
    "Modified (comment): / 17-10-2018 / 22:12:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
23
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
! !
a7eb888c81b5 Introduced GDBProcess - a class encapsulating gdb OS process.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
167
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   355
!GDBProcess methodsFor:'queries'!
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   356
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   357
canUsePTY
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   358
    "Return true if PTYs can be used with this process, false otherwise"
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   359
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   360
    ^ false
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   361
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   362
    "Created: / 16-01-2019 / 23:02:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   363
! !
6da3d808c7cc Use inferior PTY only if supported
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   364
79
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   365
!GDBProcess class methodsFor:'documentation'!
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   366
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   367
version_HG
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   368
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   369
    ^ '$Changeset: <not expanded> $'
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   370
! !
303c4edc75ad `GDBProcess` refatored to have console interpreter on STDIN/STDOUT
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   371