GDBThreadGroup.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 28 Jan 2019 14:56:14 +0000
changeset 173 02546d4fbe6d
parent 168 822cd61a882e
child 174 18ef81a3fee5
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:
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
     1
"{ Encoding: utf8 }"
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
     2
91
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
     3
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
     4
jv:libgdbs - GNU Debugger Interface Library
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
     5
Copyright (C) 2015-now Jan Vrany
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
     6
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
     7
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: 90
diff changeset
     8
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: 90
diff changeset
     9
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: 90
diff changeset
    10
version 2.1 of the License. 
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    11
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    12
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: 90
diff changeset
    13
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: 90
diff changeset
    14
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: 90
diff changeset
    15
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: 90
diff changeset
    16
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    17
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: 90
diff changeset
    18
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: 90
diff changeset
    19
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: 90
diff changeset
    20
"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ Package: 'jv:libgdbs' }"
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
60
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    23
"{ NameSpace: Smalltalk }"
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    24
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
    25
GDBDebuggerObject subclass:#GDBThreadGroup
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
    26
	instanceVariableNames:'id type executable running pid exit_code threads registersMap'
124
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    27
	classVariableNames:'ExecutableSentinel'
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    28
	poolDictionaries:'GDBCommandStatus'
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	category:'GDB-Core'
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
91
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    32
!GDBThreadGroup class methodsFor:'documentation'!
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    33
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    34
copyright
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    35
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    36
jv:libgdbs - GNU Debugger Interface Library
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    37
Copyright (C) 2015-now Jan Vrany
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    38
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    39
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: 90
diff changeset
    40
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: 90
diff changeset
    41
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: 90
diff changeset
    42
version 2.1 of the License. 
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    43
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    44
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: 90
diff changeset
    45
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: 90
diff changeset
    46
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: 90
diff changeset
    47
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: 90
diff changeset
    48
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    49
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: 90
diff changeset
    50
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: 90
diff changeset
    51
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: 90
diff changeset
    52
"
472a4841a8b6 License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    53
! !
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    54
124
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    55
!GDBThreadGroup class methodsFor:'initialization'!
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    56
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    57
initialize
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    58
    "Invoked at system start or when the class is dynamically loaded."
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    59
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    60
    ExecutableSentinel := Object new.
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    61
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    62
    "Modified: / 07-06-2018 / 10:05:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    63
! !
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
    64
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
!GDBThreadGroup class methodsFor:'instance creation'!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    67
new
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    68
    "return an initialized instance"
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    69
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    70
    ^ self basicNew initialize.
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    71
!
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
    72
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
    73
newWithDebugger: debugger id: aString
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
    74
    ^ self new setDebugger: debugger; setId: aString; yourself
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
    76
    "Created: / 07-09-2014 / 21:18:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
! !
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
!GDBThreadGroup class methodsFor:'accessing - GDB value descriptors'!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
45
deb908479a37 Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 43
diff changeset
    81
description
deb908479a37 Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 43
diff changeset
    82
    ^ (super description)
deb908479a37 Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 43
diff changeset
    83
        define:#id as:String;
deb908479a37 Code refactored to use Magritte to meta-describe GDB objects.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 43
diff changeset
    84
        define:#pid as:Integer;
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    85
        yourself.
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    86
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    87
    "
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    88
    self description
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    89
    "
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    "Created: / 06-09-2014 / 02:21:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    92
    "Modified (comment): / 01-10-2014 / 01:29:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    93
!
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    94
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    95
descriptionType
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    96
    ^ Magritte::MASingleOptionDescription new
90
6046abc9ddf4 Replaced Squek computed arrays by more verbose `Array with:...`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
    97
        optionsAndLabels: (Array with: 
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    98
            GDBThreadGroupTypeProcess -> 'process'  
90
6046abc9ddf4 Replaced Squek computed arrays by more verbose `Array with:...`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
    99
        );
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   100
        accessor: (GDBMAPropertyAccessor forPropertyNamed: 'type');
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   101
        label: 'type';
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   102
        comment: 'The type of the thread group. At present, only ‘process’ is a valid type.';
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   103
        yourself.
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   104
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   105
    "Created: / 01-10-2014 / 01:29:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
90
6046abc9ddf4 Replaced Squek computed arrays by more verbose `Array with:...`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
   106
    "Modified: / 17-11-2017 / 20:08:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
! !
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
!GDBThreadGroup methodsFor:'accessing'!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   111
executable
124
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   112
    "Return name path of the executable (if known) or nil (if unknown)"
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   113
117
17e5e955c3c1 Fix: do not try to retrieve executable path if inferior is running and async mode is available
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   114
    (executable isNil and:[ pid notNil and:[self isStopped or:[debugger hasFeature:'async']]]) ifTrue:[
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   115
        | result tg |
117
17e5e955c3c1 Fix: do not try to retrieve executable path if inferior is running and async mode is available
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   116
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   117
        result := debugger send: GDBMI_list_thread_groups new.
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   118
        result status ~~ CommandStatusDone ifTrue:[ 
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   119
            self error: 'Failed to send command.'
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   120
        ].
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   121
        tg := (result propertyAt: 'groups') detect: [: each | each id = id ].
124
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   122
        "/ In some cases the executable is not known - it may not exist (such as
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   123
        "/ when debugging bare-metal code) or the target does not report it
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   124
        "/ (may happen, for example wine's winedbg GDB proxy does not report
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   125
        "/ executable names).
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   126
        "/ 
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   127
        "/ In this case, we store a sentinel object in `executable` instvar
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   128
        "/ to prevent repeated queries which are bound to fail (see the nil-check
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   129
        "/ above.
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   130
        executable := tg executableOrNil ? ExecutableSentinel.
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   131
    ].
124
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   132
    ^ executable == ExecutableSentinel ifTrue:[ nil ] ifFalse:[ executable ]
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   133
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   134
    "Created: / 06-06-2017 / 00:04:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
117
17e5e955c3c1 Fix: do not try to retrieve executable path if inferior is running and async mode is available
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   135
    "Modified: / 26-03-2018 / 21:44:53 / jv"
124
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   136
    "Modified (comment): / 07-06-2018 / 10:09:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   137
!
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   138
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   139
executableOrNil
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   140
    ^ executable
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   141
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   142
    "Created: / 06-06-2018 / 15:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   143
!
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   144
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
exitCode
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    ^ exit_code
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    "Created: / 07-09-2014 / 12:34:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
id
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    ^ id
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
pid
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    ^ pid
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   159
threadWithId: tid
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   160
    ^ threads ? #() detect:[:e | e isDead not and:[ e id = tid ] ] ifNone:[
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   161
        self error: ('No thread with id ''%1'' found!!' bindWith: tid)        
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   162
    ].
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   163
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   164
    "Created: / 07-09-2014 / 21:37:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   165
    "Modified: / 22-09-2014 / 01:23:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   166
!
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   167
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
threads
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    threads isNil ifTrue:[ 
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
        threads := List new.
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   171
    ]. 
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   172
    ^ threads
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   173
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   174
    "Modified: / 06-09-2014 / 02:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   175
    "Modified (format): / 07-09-2014 / 21:42:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
60
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   176
!
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   177
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   178
type
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   179
    ^ type
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   180
! !
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   181
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   182
!GDBThreadGroup methodsFor:'event handling'!
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   183
37
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   184
onThreadCreatedEvent:aGDBThreadCreatedEvent 
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   185
    | thread |
37
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   186
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   187
    threads isNil ifTrue:[
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   188
        threads := List new.
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
    ].
37
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   190
    thread := GDBThread 
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   191
            newWithDebugger:debugger
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   192
            id:aGDBThreadCreatedEvent threadId
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   193
            group:self.
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   194
    threads add:thread.
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   195
    aGDBThreadCreatedEvent setThread:thread.
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   196
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   197
    "Created: / 07-09-2014 / 21:25:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   198
!
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
37
a85f0c91f164 Some more work on threads (thread status)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 36
diff changeset
   200
onThreadExitedEvent:aGDBThreadExitedEvent 
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   201
    | thread |
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   202
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   203
    thread := self threadWithId:aGDBThreadExitedEvent threadId.
95
f417138e9c48 Win32: initial support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   204
    threads remove: thread.
86
7f53d51a0a65 Cache thread status and update it on `=stopped` and `=running` events
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 81
diff changeset
   205
    thread setStatus: GDBThreadStateTerminated theOneAndOnlyInstance.
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   206
    aGDBThreadExitedEvent setThread:thread.
36
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   207
095c4b0b74d3 Added support for threads.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 35
diff changeset
   208
    "Created: / 07-09-2014 / 21:25:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
86
7f53d51a0a65 Cache thread status and update it on `=stopped` and `=running` events
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 81
diff changeset
   209
    "Modified: / 12-07-2017 / 13:42:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
95
f417138e9c48 Win32: initial support for Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   210
    "Modified: / 15-01-2018 / 09:44:09 / jv"
129
661e16236c67 Set `GDBThreadSelectedEvent`'s thread and frame
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   211
!
661e16236c67 Set `GDBThreadSelectedEvent`'s thread and frame
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   212
661e16236c67 Set `GDBThreadSelectedEvent`'s thread and frame
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   213
onThreadSelectedEvent: aGDBThreadSelectedEvent
168
822cd61a882e Fix synchronization issue in `GDBThreadGroup >> onThreadSelectedEvent:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   214
    | thread frame |
129
661e16236c67 Set `GDBThreadSelectedEvent`'s thread and frame
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   215
661e16236c67 Set `GDBThreadSelectedEvent`'s thread and frame
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   216
    thread := self threadWithId:aGDBThreadSelectedEvent threadId.
173
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   217
    frame := aGDBThreadSelectedEvent frame.
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   218
168
822cd61a882e Fix synchronization issue in `GDBThreadGroup >> onThreadSelectedEvent:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   219
    aGDBThreadSelectedEvent setThread: thread.
173
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   220
    "/ Be carefull, thread may be running!!
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   221
    (thread isStopped and:[frame notNil]) ifTrue:[ 
168
822cd61a882e Fix synchronization issue in `GDBThreadGroup >> onThreadSelectedEvent:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   222
        aGDBThreadSelectedEvent setFrame: (thread stack at: (frame level + 1))
173
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   223
    ] ifFalse:[ 
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   224
        "/ If it is running, at least fixup it's frame, if there's any (it may not
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   225
        "/ if the thread is running at the time of =thread-select event.
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   226
        "/ Uff, so many cases...
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   227
        frame notNil ifTrue:[
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   228
            frame 
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   229
                setDebugger: debugger;
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   230
                setThread: thread.
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   231
        ].
168
822cd61a882e Fix synchronization issue in `GDBThreadGroup >> onThreadSelectedEvent:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   232
    ].
129
661e16236c67 Set `GDBThreadSelectedEvent`'s thread and frame
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   233
661e16236c67 Set `GDBThreadSelectedEvent`'s thread and frame
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   234
    "Created: / 29-07-2018 / 22:21:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
173
02546d4fbe6d Fix frame of `GDBThreadSelectedEvent` if inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   235
    "Modified: / 26-01-2019 / 23:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
! !
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
!GDBThreadGroup methodsFor:'initialization'!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   240
initialize
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   241
    "Invoked when a new instance is created."
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   242
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   243
    running := false.
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   244
    registersMap := Dictionary new.
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   245
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   246
    "Modified: / 26-09-2018 / 09:53:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   247
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   248
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   249
reset
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   250
    "Reset all internal caches. Invoked bu debugger when an inferior
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   251
     starts. This is necessary since GDB recycles inferors and so we
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   252
     do."
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   253
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   254
    registersMap := Dictionary new.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   255
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   256
    "Created: / 26-09-2018 / 10:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   257
!
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   258
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
setExitCode: anInteger
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
    exit_code := anInteger.
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   261
    running := false.
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   262
    threads removeAll.
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
    "Created: / 06-09-2014 / 02:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   265
    "Modified: / 06-06-2017 / 00:24:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
setId: aString
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    id := aString.
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
    "Created: / 06-09-2014 / 02:32:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
setPid: anInteger
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
    pid := anInteger.
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    exit_code := nil.
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   277
    executable := nil.
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   278
    running := true.
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
    "Created: / 06-09-2014 / 02:32:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   281
    "Modified: / 06-06-2017 / 00:24:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
! !
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   284
!GDBThreadGroup methodsFor:'printing & storing'!
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   285
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   286
printOn:aStream
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   287
    "append a printed representation if the receiver to the argument, aStream"
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   288
60
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   289
    super printOn: aStream.
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   290
    aStream nextPutAll:'(id '.
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   291
    id printOn:aStream.
60
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   292
    aStream nextPutAll:', pid '.
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   293
    pid printOn:aStream.
60
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   294
    aStream nextPutAll:')'.
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   295
60
ab92b3e4aecf Changed GDBThreadGroup>>printOn:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   296
    "Modified: / 02-03-2015 / 07:10:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   297
! !
22236b6d1d9a Remove threads from thread group when threadgroup terminates.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   298
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
!GDBThreadGroup methodsFor:'private'!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   301
registersMap
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   302
    ^ registersMap
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   303
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   304
    "Created: / 26-09-2018 / 10:01:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   305
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 129
diff changeset
   306
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
threadAdd: aGDBThread
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
    self threads add: aGDBThread
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
    "Created: / 06-09-2014 / 02:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
threadRemove: aGDBThread
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
    self threads remove: aGDBThread
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
    "Created: / 06-09-2014 / 02:23:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
! !
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
!GDBThreadGroup methodsFor:'testing'!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
isDead
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   322
    "Return true if program finished, either normally or abruptly (usng `kill` command).
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   323
     To tell whether is has finished normally or it has been terminated see
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   324
     #isFinished and / or #isTerminated"
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   325
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   326
    ^ self isRunning not and:[ pid notNil ]
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
    "Created: / 06-09-2014 / 02:38:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   329
    "Modified: / 06-06-2017 / 09:22:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   330
!
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   331
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   332
isFinished
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   333
    "Return true if program finished its execution normally (as opposed to be
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   334
     terminated by the debugger), false otherwise. 
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   335
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   336
     @see also #isTerminated
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   337
     @see also #isDead
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   338
    "
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   339
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   340
    ^ self isDead  and:[ exit_code notNil ]
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   341
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   342
    "Created: / 06-06-2017 / 09:23:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
!
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
isRunning
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   346
    "Return true, if program is currently running, false otherwise.
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   347
     Note, that program is running even of it's stopped byt the debugger.
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   348
     See #isStopped"
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   349
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   350
    ^ running
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
    "Created: / 06-09-2014 / 02:38:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   353
    "Modified: / 06-06-2017 / 00:25:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   354
!
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   355
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   356
isStopped
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   357
    ^ threads notEmptyOrNil and:[ threads anySatisfy: [:t | t isStopped ] ].
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   358
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   359
    "Created: / 30-09-2014 / 00:49:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   360
!
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   361
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   362
isTerminated
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   363
    "Return true if program has been terminated (as opposed to finishing normally),
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   364
     false otherwise.
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   365
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   366
     @see also #isFinished
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   367
     @see also #isDead
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   368
    "
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   369
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   370
    ^ self isDead and:[ exit_code isNil ]
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   371
5e07808d349f Fixed and improvemets in `GDBThreadGroup` API
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   372
    "Created: / 06-06-2017 / 09:26:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
106
12c96f17fc53 Variable objects: invalidate variable object when thread on inferior terminates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   373
!
12c96f17fc53 Variable objects: invalidate variable object when thread on inferior terminates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   374
12c96f17fc53 Variable objects: invalidate variable object when thread on inferior terminates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   375
isValid
12c96f17fc53 Variable objects: invalidate variable object when thread on inferior terminates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   376
    ^ debugger isConnected and:[ self isDead not ]
12c96f17fc53 Variable objects: invalidate variable object when thread on inferior terminates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   377
12c96f17fc53 Variable objects: invalidate variable object when thread on inferior terminates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 95
diff changeset
   378
    "Created: / 04-02-2018 / 21:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
! !
c17ecf90e446 Initial support for thread groups, threads and breakpoints.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
51
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   381
!GDBThreadGroup class methodsFor:'documentation'!
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   382
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   383
version_HG
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   384
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   385
    ^ '$Changeset: <not expanded> $'
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   386
! !
2fa20404923c Introduced GDBThreadGroupType.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
   387
124
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   388
74c24ce40251 Fixed `GDBThreadGroup >> #executable` for case where executable ir not known (reported)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   389
GDBThreadGroup initialize!