GDBMI_exec_run.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 04 Mar 2015 22:03:48 +0000
changeset 61 b68d121e3895
parent 47 4f5d75acecb0
child 78 c24e7d8bc881
permissions -rw-r--r--
Workaround for GDB bug 18077 GDB up to 7.9 does not correctly handle this command in async mode. According to GDB source code, the MI command actually issues CLI command run in background mode (if mi-async is on). See https://sourceware.org/bugzilla/show_bug.cgi?id=18077
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
61
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
     1
"{ Encoding: utf8 }"
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
     2
12
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ Package: 'jv:libgdbs' }"
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
61
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
     5
"{ NameSpace: Smalltalk }"
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
     6
12
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
GDBMICommand subclass:#GDBMI_exec_run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	instanceVariableNames:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	classVariableNames:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	poolDictionaries:''
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	category:'GDB-Core-Commands-MI'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!
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
!GDBMI_exec_run class methodsFor:'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
documentation
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
The `-exec-run' Command
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
-----------------------
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
Synopsis
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
........
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
      -exec-run [ --all | --thread-group N ] [ --start ]
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
   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
    27
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
    28
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
    29
has exited exceptionally.
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
   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
    32
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
    33
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
    34
`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
    35
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
    36
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
   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
    38
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
    39
same behavior as the `start' command (*note Starting::).
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
{No value for `GDBN'} Command
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
.............................
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
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
    45
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
Examples
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
........
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
     -break-insert main
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
     ^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
    52
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
     -exec-run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
     ^running
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
     *stopped,reason='breakpoint-hit',disp='keep',bkptno='1',
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
     frame={func='main',args=[],file='recursive2.c',
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
     fullname='/home/foo/bar/recursive2.c',line='4'}
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
     (gdb)
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
Program exited normally:
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
     -exec-run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
     ^running
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
     x = 55
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
     *stopped,reason='exited-normally'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
     (gdb)
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
Program exited exceptionally:
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
     -exec-run
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
     ^running
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
     x = 55
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
     *stopped,reason='exited',exit-code='01'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
   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
    82
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
    83
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
     (gdb)
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
     *stopped,reason='exited-signalled',signal-name='SIGINT',
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
     signal-meaning='Interrupt'
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
! !
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
!GDBMI_exec_run methodsFor:'accessing'!
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
operation
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
	^ 'exec-run'
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
! !
568a2971c977 Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
61
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
    98
!GDBMI_exec_run methodsFor:'converting'!
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
asString
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   101
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   102
    "/ 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
   103
    "/ 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
   104
    "/ 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
   105
    "/ 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
   106
    "/ 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
   107
    "/ 
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   108
    "/ As a (temporary) workaround, substitute for CLI command here.
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   109
    ^ 'r &'
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   110
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   111
    "Created: / 04-03-2015 / 20:49:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   112
! !
b68d121e3895 Workaround for GDB bug 18077
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 47
diff changeset
   113
47
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   114
!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
   115
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   116
version_HG
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   117
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   118
    ^ '$Changeset: <not expanded> $'
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   119
! !
4f5d75acecb0 Added support for parsing enums using MAOptionDescription
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
   120