GDBMIDebugger.st
author Jan Vrany <jan.vrany@labware.com>
Thu, 07 Dec 2023 12:33:31 +0000
changeset 322 1b26d0a9560c
parent 317 7f63737e0374
permissions -rw-r--r--
Emit and handle (custom) `-register-changed` notification This commit adds new (custom) asynchronous notification about register value being changed. Standard GDB does not notify MI clients about register value being changed when debugging (for example, by CLI command `set $rax = 1` or via Python's `Value.assign()`). This caused libgdb's register value cache being out of sync. In the past, this was partially worked around by manually emiting the notification on `GDBRegisterWithValue` APIs, but this did not (and could not) handle the case register was changed from GDB command line. To solve this problem, this commit installs a custom Python event handler that emits new GDB/MI notification - `-register-changed` - whenever a register changes after debugee is stopped. This has been enabled by upstream GDB commit 4825fd "gdb/python: implement support for sending custom MI async notifications" On libgdbs side, complete inferior state is invalidated. In theory, one could carefully invalidate only the changed `GDBRegisterWithValue` but in certain cases this could also change the backtrace (for example, if one updates stack pointer) or position in code. So it seems safer to just invalidate everything.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:libgdbs - GNU Debugger Interface Library
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
209
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
     4
Copyright (C) 2020 LabWare
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
     5
Copyright (C) 2022-2023 LabWare
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
     7
Permission is hereby granted, free of charge, to any person obtaining a copy
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
     8
of this software and associated documentation files (the 'Software'), to deal
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
     9
in the Software without restriction, including without limitation the rights
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    10
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    11
copies of the Software, and to permit persons to whom the Software is
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    12
furnished to do so, subject to the following conditions:
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    14
The above copyright notice and this permission notice shall be included in all
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    15
copies or substantial portions of the Software.
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    17
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    18
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    19
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    20
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    21
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    22
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    23
SOFTWARE.
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
"{ Package: 'jv:libgdbs' }"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
"{ NameSpace: Smalltalk }"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
ApplicationModel subclass:#GDBMIDebugger
209
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
    30
	instanceVariableNames:'command process cliView miView'
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
	classVariableNames:''
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
	poolDictionaries:''
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
    33
	category:'GDB-Internal-MI Trace'
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
!GDBMIDebugger class methodsFor:'documentation'!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
copyright
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
jv:libgdbs - GNU Debugger Interface Library
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
Copyright (C) 2015-now Jan Vrany
209
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
    42
Copyright (C) 2020 LabWare
272
cdd1c9ad00de Change class categories to facilitate Pharo port
Jan Vrany <jan.vrany@labware.com>
parents: 259
diff changeset
    43
Copyright (C) 2022-2023 LabWare
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    45
Permission is hereby granted, free of charge, to any person obtaining a copy
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    46
of this software and associated documentation files (the 'Software'), to deal
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    47
in the Software without restriction, including without limitation the rights
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    48
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    49
copies of the Software, and to permit persons to whom the Software is
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    50
furnished to do so, subject to the following conditions:
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    52
The above copyright notice and this permission notice shall be included in all
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    53
copies or substantial portions of the Software.
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
259
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    55
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    56
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    57
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    58
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    59
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    60
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
651864c2aa29 Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents: 258
diff changeset
    61
SOFTWARE.
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
! !
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
!GDBMIDebugger class methodsFor:'interface specs'!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
windowSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    "This resource specification was automatically generated
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
     by the UIPainter of ST/X."
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    "Do not manually edit this!! If it is corrupted,
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
     the UIPainter may not be able to read the specification."
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    "
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
     UIPainter new openOnClass:GDBMIDebugger andSelector:#windowSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
     GDBMIDebugger new openInterface:#windowSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
     GDBMIDebugger open
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    "
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    <resource: #canvas>
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    ^ 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    #(FullSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
       name: windowSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
       window: 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
      (WindowSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
         label: 'GDB/MI Debugger / Viewer'
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
         name: 'GDB/MI Debugger / Viewer'
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
         uuid: '75dbc6f1-9274-11e9-b1d9-606720e43e2c'
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
         min: (Point 10 10)
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
         bounds: (Rectangle 0 0 852 533)
258
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
    92
         menu: mainMenu
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
    93
      ) component: 
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
      (SpecCollection
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
         collection: (
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
          (VariableVerticalPanelSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
             name: 'VariableVerticalPanel1'
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
             component: 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
            (SpecCollection
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
               collection: (
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
                (ArbitraryComponentSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
                   name: 'CLI'
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
                   hasBorder: false
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
                   component: cliView
258
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   106
                )
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
                (ArbitraryComponentSpec
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
                   name: 'MI'
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
                   hasBorder: false
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
                   component: miView
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
                )
258
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   112
              )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   113
            ) handles: 
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   114
            (Any
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   115
               0.5 1.0
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   116
            )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   117
          )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   118
        )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   119
      )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   120
    )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   121
! !
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   122
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   123
!GDBMIDebugger class methodsFor:'menu specs'!
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   124
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   125
mainMenu
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   126
    "This resource specification was automatically generated
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   127
     by the MenuEditor of ST/X."
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   128
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   129
    "Do not manually edit this!! If it is corrupted,
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   130
     the MenuEditor may not be able to read the specification."
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   131
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   132
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   133
    "
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   134
     MenuEditor new openOnClass:GDBMIDebugger andSelector:#mainMenu
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   135
     (Menu new fromLiteralArrayEncoding:(GDBMIDebugger mainMenu)) startUp
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   136
    "
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   137
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   138
    <resource: #menu>
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   139
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   140
    ^ 
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   141
     #(Menu (
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   142
         (MenuItem
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   143
            label: 'Debug'
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   144
            startGroup: right
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   145
            isVisible: true
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   146
            submenu: 
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   147
           (Menu (
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   148
               (MenuItem
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   149
                  label: 'Open & Attach to GDB Process'
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   150
                  itemValue: doDebugOpenAndAttachToGDB
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   151
                  isVisible: true
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   152
               )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   153
             ) nil
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   154
              nil
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
           )
258
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   156
         )
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   157
       ) nil
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   158
        nil
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
     )
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
! !
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
209
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   162
!GDBMIDebugger class methodsFor:'utilities'!
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   163
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   164
debug: command
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   165
    "
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   166
    Open GDB/MI Debugger on given GDB executable
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   167
    "
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   168
    self new
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   169
        command: command;
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   170
        open
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   171
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   172
    "Created: / 23-06-2020 / 14:12:22 / Jan Vrany <jan.vrany@labware.com>"
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   173
! !
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   174
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   175
!GDBMIDebugger methodsFor:'accessing'!
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   176
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   177
command
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   178
    ^ command
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   179
!
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   180
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   181
command:aString
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   182
    self assert: aString asFilename exists.
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   183
    command := aString.
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   184
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   185
    "Modified: / 23-06-2020 / 14:13:42 / Jan Vrany <jan.vrany@labware.com>"
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   186
! !
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   187
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
!GDBMIDebugger methodsFor:'aspects'!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
cliView
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    cliView isNil ifTrue:[ 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
        cliView := VT100TerminalView new.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
        self initializeTerminalView: cliView.  
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
    ].
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    ^ cliView
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    "Created: / 19-06-2019 / 10:33:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
miView
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
    miView isNil ifTrue:[ 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
        miView := VT100TerminalView new.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
        self initializeTerminalView: miView.  
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    ].
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    ^ miView
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    "Created: / 19-06-2019 / 10:34:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
! !
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
!GDBMIDebugger methodsFor:'hooks'!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
commonPostOpen
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    super commonPostOpen.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
209
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   215
    process := GDBLocalProcess newWithCommand: command.  
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
317
7f63737e0374 Fix `GDBMIDebugger` after rename of `GDBStXUnixProcess` to `GDBUnixProcess`
Jan Vrany <jan.vrany@labware.com>
parents: 272
diff changeset
   217
    (process isKindOf: GDBUnixProcess) ifTrue:[ 
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
        (process instVarNamed: #debuggerPTY) 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
            setLocalEcho: true;
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
            setOutputCRLF: true.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
    ].
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    miView inStream: process debuggerInput.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
    miView outStream: process debuggerOutput. 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    miView startReaderProcessWhenVisible.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    process consoleInput notNil ifTrue:[ 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
        cliView inStream: process consoleInput.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
        cliView outStream: process consoleOutput. 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
        cliView startReaderProcessWhenVisible.    
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
    ] ifFalse:[ 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
        cliView hide.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    ].
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
    "Created: / 19-06-2019 / 10:40:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
317
7f63737e0374 Fix `GDBMIDebugger` after rename of `GDBStXUnixProcess` to `GDBUnixProcess`
Jan Vrany <jan.vrany@labware.com>
parents: 272
diff changeset
   235
    "Modified: / 08-09-2023 / 12:36:42 / Jan Vrany <jan.vrany@labware.com>"
194
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
! !
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
!GDBMIDebugger methodsFor:'initialization & release'!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
initializeTerminalView: aTerminalView
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
    aTerminalView cursorType: #block;  
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
                foregroundColor: Color white
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
                backgroundColor: Color black;
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
                cursorForegroundColor: Color white
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
                      backgroundColor: Color white.      
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
    (Smalltalk at: #VDBAbstractApplication) notNil ifTrue:[ 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
        aTerminalView font: (Smalltalk at: #VDBAbstractApplication) defaultTextFont
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
    ].
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
    "Created: / 19-06-2019 / 10:33:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
!
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
release
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
    process notNil ifTrue:[ 
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
        process release.
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
    ].
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
    "Created: / 19-06-2019 / 10:47:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
! !
312d96017653 Add `GDBMIDebugger` tool to test raw MI / CLI.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
258
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   261
!GDBMIDebugger methodsFor:'menu actions'!
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   262
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   263
doDebugOpenAndAttachToGDB
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   264
    | debuggerOnGDB |
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   265
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   266
    (Smalltalk includesKey: #VDBDebuggerApplication) ifFalse: [ 
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   267
         Smalltalk loadPackage: #'jv:vdb'.
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   268
    ].
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   269
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   270
    debuggerOnGDB := GDBDebugger new.
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   271
    (Smalltalk at: #VDBDebuggerApplication) openFor: debuggerOnGDB.
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   272
    debuggerOnGDB attach: process id.
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   273
! !
612aff5ff058 `GDBMIDebugger`: add option to attach a debugger to debugged GDB
Jan Vrany <jan.vrany@labware.com>
parents: 209
diff changeset
   274
209
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   275
!GDBMIDebugger class methodsFor:'documentation'!
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   276
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   277
version_HG
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   278
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   279
    ^ '$Changeset: <not expanded> $'
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   280
! !
4eb2433b3c0a Allow GDB/MI debugging of custom GDB binary using `GDBMIDebugger`
Jan Vrany <jan.vrany@labware.com>
parents: 194
diff changeset
   281