Next: , Previous: GDB/MI Program Context, Up: GDB/MI


26.9 gdb/mi Thread Commands

The -thread-info Command

Synopsis
      -thread-info [ thread-id ]

Reports information about either a specific thread, if the thread-id parameter is present, or about all threads. When printing information about all threads, also reports the current thread.

gdb Command

The ‘info thread’ command prints the same information about all threads.

Example
     -thread-info
     ^done,threads=[
     {id="2",target-id="Thread 0xb7e14b90 (LWP 21257)",
        frame={level="0",addr="0xffffe410",func="__kernel_vsyscall",args=[]},
     {id="1",target-id="Thread 0xb7e156b0 (LWP 21254)",
        frame={level="0",addr="0x0804891f",func="foo",args=[{name="i",value="10"}],
                file="/tmp/a.c",fullname="/tmp/a.c",line="158"}}],
     current-thread-id="1"
     (gdb)

The -thread-list-ids Command

Synopsis
      -thread-list-ids

Produces a list of the currently known gdb thread ids. At the end of the list it also prints the total number of such threads.

gdb Command

Part of ‘info threads’ supplies the same information.

Example

No threads present, besides the main process:

     (gdb)
     -thread-list-ids
     ^done,thread-ids={},number-of-threads="0"
     (gdb)

Several threads:

     (gdb)
     -thread-list-ids
     ^done,thread-ids={thread-id="3",thread-id="2",thread-id="1"},
     number-of-threads="3"
     (gdb)

The -thread-select Command

Synopsis
      -thread-select threadnum

Make threadnum the current thread. It prints the number of the new current thread, and the topmost frame for that thread.

gdb Command

The corresponding gdb command is ‘thread’.

Example
     (gdb)
     -exec-next
     ^running
     (gdb)
     *stopped,reason="end-stepping-range",thread-id="2",line="187",
     file="../../../devo/gdb/testsuite/gdb.threads/linux-dp.c"
     (gdb)
     -thread-list-ids
     ^done,
     thread-ids={thread-id="3",thread-id="2",thread-id="1"},
     number-of-threads="3"
     (gdb)
     -thread-select 3
     ^done,new-thread-id="3",
     frame={level="0",func="vprintf",
     args=[{name="format",value="0x8048e9c \"%*s%c %d %c\\n\""},
     {name="arg",value="0x2"}],file="vprintf.c",line="31"}
     (gdb)