GDBMI_exec_run.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 11 Jul 2017 23:37:04 +0200
changeset 85 6fea1000a2a5
parent 78 c24e7d8bc881
child 91 472a4841a8b6
permissions -rw-r--r--
Implemented proper quoting of MI commands ...as described in GDB MI documentation [1] by means of a (new) class `GDBMIPrinter`. `GDBCommand >> asString` has been changed to use `GDBMIPrinter`. [1]: https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Input-Syntax.html#GDB_002fMI-Input-Syntax
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:libgdbs' }"
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
61
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
     3
"{ NameSpace: Smalltalk }"
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
     4
12
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
GDBMICommand subclass:#GDBMI_exec_run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'GDB-Core-Commands-MI'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!GDBMI_exec_run class methodsFor:'documentation'!
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
documentation
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
"
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
The `-exec-run' Command
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
-----------------------
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
Synopsis
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
........
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
      -exec-run [ --all | --thread-group N ] [ --start ]
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
   Starts execution of the inferior from the beginning.  The inferior
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
executes until either a breakpoint is encountered or the program exits.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
In the latter case the output will include an exit code, if the program
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
has exited exceptionally.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
   When neither the `--all' nor the `--thread-group' option is
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
specified, the current inferior is started.  If the `--thread-group'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
option is specified, it should refer to a thread group of type
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
`process', and that thread group will be started.  If the `--all'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
option is specified, then all inferiors will be started.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
   Using the `--start' option instructs the debugger to stop the
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
execution at the start of the inferior's main subprogram, following the
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
same behavior as the `start' command (*note Starting::).
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
{No value for `GDBN'} Command
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
.............................
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
The corresponding {No value for `GDBN'} command is `run'.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
Examples
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
........
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
     -break-insert main
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
     ^done,bkpt={number='1',addr='0x0001072c',file='recursive2.c',line='4'}
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
     -exec-run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
     ^running
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
     *stopped,reason='breakpoint-hit',disp='keep',bkptno='1',
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
     frame={func='main',args=[],file='recursive2.c',
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
     fullname='/home/foo/bar/recursive2.c',line='4'}
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
Program exited normally:
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
     -exec-run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
     ^running
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
     x = 55
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
     *stopped,reason='exited-normally'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
Program exited exceptionally:
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
     -exec-run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
     ^running
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
     x = 55
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
     *stopped,reason='exited',exit-code='01'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
   Another way the program can terminate is if it receives a signal
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
such as `SIGINT'.  In this case, GDB/MI displays this:
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
     *stopped,reason='exited-signalled',signal-name='SIGINT',
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
     signal-meaning='Interrupt'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
"
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
! !
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
!GDBMI_exec_run methodsFor:'accessing'!
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
operation
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
	^ 'exec-run'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
! !
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
61
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
    96
!GDBMI_exec_run methodsFor:'converting'!
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
    97
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
    98
asString
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
    99
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   100
    "/ Following code is an workaround to a bug in GDB up to 7.9,
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   101
    "/ which does not correctly handle this command in async mode.
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   102
    "/ According to GDB source code, the MI command actually issues
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   103
    "/ CLI command run in background mode (if mi-async is on).
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   104
    "/ See https://sourceware.org/bugzilla/show_bug.cgi?id=18077
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   105
    "/ 
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   106
    "/ As a (temporary) workaround, substitute for CLI command here.
85
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   107
    ^ (token notNil ifTrue:[token printString ] ifFalse:['']) , 'r &'
61
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   108
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   109
    "Created: / 04-03-2015 / 20:49:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
85
6fea1000a2a5 Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   110
    "Modified: / 11-07-2017 / 23:31:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   111
! !
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   112
47
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   113
!GDBMI_exec_run class methodsFor:'documentation'!
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   114
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   115
version_HG
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   116
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   117
    ^ '$Changeset: <not expanded> $'
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   118
! !
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   119