GDBCommand.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 28 Jan 2019 14:56:14 +0000
changeset 173 02546d4fbe6d
parent 94 6a4377ee1563
child 222 2c06fc7c39f5
permissions -rw-r--r--
Fix frame of `GDBThreadSelectedEvent` if inferior is running When ifnferior is running at time we get `=thread-selected` event, we should at least make that frame kind of usable by fixing up it's debugger and thread. This allow clients to use (to some extent) event's frame without worring (too much) about these details.
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: 85
diff changeset
     1
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
diff changeset
     4
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
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: 85
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: 85
diff changeset
     9
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
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: 85
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: 85
diff changeset
    14
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
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: 85
diff changeset
    18
"
3
29ea333a1811 More work on events and parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"{ Package: 'jv:libgdbs' }"
29ea333a1811 More work on events and parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
78
c24e7d8bc881 BUpdated build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    21
"{ NameSpace: Smalltalk }"
c24e7d8bc881 BUpdated build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    22
6
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    23
Object subclass:#GDBCommand
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    24
	instanceVariableNames:'token'
3
29ea333a1811 More work on events and parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	classVariableNames:''
29ea333a1811 More work on events and parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
6
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    27
	category:'GDB-Core-Commands'
3
29ea333a1811 More work on events and parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
29ea333a1811 More work on events and parsing.
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: 85
diff changeset
    30
!GDBCommand class methodsFor:'documentation'!
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
    31
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
    32
copyright
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
    33
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
diff changeset
    36
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
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: 85
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: 85
diff changeset
    41
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
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: 85
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: 85
diff changeset
    46
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
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: 85
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: 85
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: 85
diff changeset
    50
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
    51
! !
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
    52
94
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    53
!GDBCommand class methodsFor:'utilities'!
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    54
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    55
parse: aStringOrStream
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    56
    "Return an sub-instance of GDBCommand from textual representation"
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    57
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    58
    ^ (GDBMIParser on: aStringOrStream readStream) parseCommand.
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    59
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    60
    "
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    61
    GDBCommand parse: 'b new.c : 123'
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    62
    "
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    63
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    64
    "Created: / 08-01-2018 / 19:22:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    65
! !
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    66
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    67
!GDBCommand methodsFor:'accessing'!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    68
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    69
token
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    70
    ^ token
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    71
!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    72
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    73
token:anInteger
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    74
    token := anInteger.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    75
! !
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    76
20
76ac209277a7 Unified implementation of #propertyAt: & #propertyAt:put:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    77
!GDBCommand methodsFor:'accessing-descriptors'!
76ac209277a7 Unified implementation of #propertyAt: & #propertyAt:put:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    78
45
deb908479a37 Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20
diff changeset
    79
resultDescription
deb908479a37 Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20
diff changeset
    80
    ^ GDBMAContainer new
20
76ac209277a7 Unified implementation of #propertyAt: & #propertyAt:put:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    81
76ac209277a7 Unified implementation of #propertyAt: & #propertyAt:put:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    82
    "Created: / 19-06-2014 / 21:39:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
45
deb908479a37 Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20
diff changeset
    83
    "Modified: / 23-09-2014 / 23:37:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
20
76ac209277a7 Unified implementation of #propertyAt: & #propertyAt:put:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    84
! !
76ac209277a7 Unified implementation of #propertyAt: & #propertyAt:put:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    85
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    86
!GDBCommand methodsFor:'converting'!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    87
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    88
asString
85
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    89
    ^ String streamContents: [ :s | (GDBMIPrinter on: s) printCommand: self ]
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    90
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    91
    "Created: / 09-06-2014 / 18:42:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    92
    "Modified: / 11-07-2017 / 23:14:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    93
! !
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
    94
85
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    95
!GDBCommand methodsFor:'printing & storing'!
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    96
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    97
printOn: aStream
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    98
    super printOn: aStream.
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    99
    aStream nextPut: $(; nextPutAll: self asString; nextPut:$)
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   100
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   101
    "Created: / 11-07-2017 / 23:23:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   102
! !
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   103
11
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   104
!GDBCommand methodsFor:'testing'!
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   105
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   106
isCLICommand
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   107
    ^ false
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   108
!
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   109
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   110
isMICommand
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   111
    ^ false
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   112
! !
474fbb650afe PTY support refactored to use GDBPTY object.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   113
94
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   114
!GDBCommand class methodsFor:'documentation'!
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   115
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   116
version_HG
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   117
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   118
    ^ '$Changeset: <not expanded> $'
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   119
! !
6a4377ee1563 Added `GDBCommand class >> parse:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   120