### 25.19 Miscellaneous gdb/mi Commands

#### The `-gdb-exit` Command

##### Synopsis

          -gdb-exit

Exit gdb immediately.

##### gdb Command

Approximately corresponds to ``quit`'.

##### Example

         (gdb)
         -gdb-exit
         ^exit

#### The `-exec-abort` Command

##### Synopsis

          -exec-abort

Kill the inferior running program.

##### gdb Command

The corresponding gdb command is ``kill`'.

##### Example

N.A.

#### The `-gdb-set` Command

##### Synopsis

          -gdb-set

Set an internal gdb variable.

##### gdb Command

The corresponding gdb command is ``set`'.

##### Example

         (gdb)
         -gdb-set $foo=3
         ^done
         (gdb)

#### The `-gdb-show` Command

##### Synopsis

          -gdb-show

Show the current value of a gdb variable.

##### gdb Command

The corresponding gdb command is ``show`'.

##### Example

         (gdb)
         -gdb-show annotate
         ^done,value="0"
         (gdb)

#### The `-gdb-version` Command

##### Synopsis

          -gdb-version

Show version information for gdb. Used mostly in testing.

##### gdb Command

The gdb equivalent is ``show version`'. gdb by default shows this information when you start an interactive session.

##### Example

         (gdb)
         -gdb-version
         ~GNU gdb 5.2.1
         ~Copyright 2000 Free Software Foundation, Inc.
         ~GDB is free software, covered by the GNU General Public License, and
         ~you are welcome to change it and/or distribute copies of it under
         ~ certain conditions.
         ~Type "show copying" to see the conditions.
         ~There is absolutely no warranty for GDB.  Type "show warranty" for
         ~ details.
         ~This GDB was configured as
          "--host=sparc-sun-solaris2.5.1 --target=ppc-eabi".
         ^done
         (gdb)

#### The `-list-features` Command

Returns a list of particular features of the MI protocol that this version of gdb implements. A feature can be a command, or a new field in an output of some command, or even an important bugfix. While a frontend can sometimes detect presence of a feature at runtime, it is easier to perform detection at debugger startup.

The command returns a list of strings, with each string naming an available feature. Each returned string is just a name, it does not have any internal structure. The list of possible feature names is given below.

Example output:

         (gdb) -list-features
         ^done,result=["feature1","feature2"]

The current list of features is:

- ``frozen-varobjs`'—indicates presence of the `-var-set-frozen` command, as well as possible presense of the `frozen` field in the output of `-varobj-create`.
- ``pending-breakpoints`'—indicates presence of the `-f` option to the `-break-insert` command.

#### The `-interpreter-exec` Command

#### Synopsis

         -interpreter-exec interpreter command

Execute the specified command in the given interpreter.

#### gdb Command

The corresponding gdb command is ``interpreter-exec`'.

#### Example

         (gdb)
         -interpreter-exec console "break main"
         &"During symbol reading, couldn't parse type; debugger out of date?.\n"
         &"During symbol reading, bad structure-type format.\n"
         ~"Breakpoint 1 at 0x8074fc6: file ../../src/gdb/main.c, line 743.\n"
         ^done
         (gdb)

#### The `-inferior-tty-set` Command

#### Synopsis

         -inferior-tty-set /dev/pts/1

Set terminal for future runs of the program being debugged.

#### gdb Command

The corresponding gdb command is ``set inferior-tty`' /dev/pts/1.

#### Example

         (gdb)
         -inferior-tty-set /dev/pts/1
         ^done
         (gdb)

#### The `-inferior-tty-show` Command

#### Synopsis

         -inferior-tty-show

Show terminal for future runs of program being debugged.

#### gdb Command

The corresponding gdb command is ``show inferior-tty`'.

#### Example

         (gdb)
         -inferior-tty-set /dev/pts/1
         ^done
         (gdb)
         -inferior-tty-show
         ^done,inferior_tty_terminal="/dev/pts/1"
         (gdb)

#### The `-enable-timings` Command

#### Synopsis

         -enable-timings [yes | no]

Toggle the printing of the wallclock, user and system times for an MI command as a field in its output. This command is to help frontend developers optimize the performance of their code. No argument is equivalent to ``yes`'.

#### gdb Command

No equivalent.

#### Example

         (gdb)
         -enable-timings
         ^done
         (gdb)
         -break-insert main
         ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",
         addr="0x080484ed",func="main",file="myprog.c",
         fullname="/home/nickrob/myprog.c",line="73",times="0"},
         time={wallclock="0.05185",user="0.00800",system="0.00000"}
         (gdb)
         -enable-timings no
         ^done
         (gdb)
         -exec-run
         ^running
         (gdb)
         *stopped,reason="breakpoint-hit",bkptno="1",thread-id="0",
         frame={addr="0x080484ed",func="main",args=[{name="argc",value="1"},
         {name="argv",value="0xbfb60364"}],file="myprog.c",
         fullname="/home/nickrob/myprog.c",line="73"}
         (gdb)