<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<html>
|
<!-- Copyright (C) 1988-2017 Free Software Foundation, Inc.
|
|
Permission is granted to copy, distribute and/or modify this document
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
any later version published by the Free Software Foundation; with the
|
Invariant Sections being "Free Software" and "Free Software Needs
|
Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
|
and with the Back-Cover Texts as in (a) below.
|
|
(a) The FSF's Back-Cover Text is: "You are free to copy and modify
|
this GNU Manual. Buying copies from GNU Press supports the FSF in
|
developing GNU and promoting software freedom." -->
|
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
|
<head>
|
<title>Debugging with GDB: GDB/MI Thread Commands</title>
|
|
<meta name="description" content="Debugging with GDB: GDB/MI Thread Commands">
|
<meta name="keywords" content="Debugging with GDB: GDB/MI Thread Commands">
|
<meta name="resource-type" content="document">
|
<meta name="distribution" content="global">
|
<meta name="Generator" content="makeinfo">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<link href="index.html#Top" rel="start" title="Top">
|
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
|
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
|
<link href="GDB_002fMI.html#GDB_002fMI" rel="up" title="GDB/MI">
|
<link href="GDB_002fMI-Ada-Tasking-Commands.html#GDB_002fMI-Ada-Tasking-Commands" rel="next" title="GDB/MI Ada Tasking Commands">
|
<link href="GDB_002fMI-Program-Context.html#GDB_002fMI-Program-Context" rel="prev" title="GDB/MI Program Context">
|
<style type="text/css">
|
<!--
|
a.summary-letter {text-decoration: none}
|
blockquote.smallquotation {font-size: smaller}
|
div.display {margin-left: 3.2em}
|
div.example {margin-left: 3.2em}
|
div.indentedblock {margin-left: 3.2em}
|
div.lisp {margin-left: 3.2em}
|
div.smalldisplay {margin-left: 3.2em}
|
div.smallexample {margin-left: 3.2em}
|
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
|
div.smalllisp {margin-left: 3.2em}
|
kbd {font-style:oblique}
|
pre.display {font-family: inherit}
|
pre.format {font-family: inherit}
|
pre.menu-comment {font-family: serif}
|
pre.menu-preformatted {font-family: serif}
|
pre.smalldisplay {font-family: inherit; font-size: smaller}
|
pre.smallexample {font-size: smaller}
|
pre.smallformat {font-family: inherit; font-size: smaller}
|
pre.smalllisp {font-size: smaller}
|
span.nocodebreak {white-space:nowrap}
|
span.nolinebreak {white-space:nowrap}
|
span.roman {font-family:serif; font-weight:normal}
|
span.sansserif {font-family:sans-serif; font-weight:normal}
|
ul.no-bullet {list-style: none}
|
-->
|
</style>
|
|
|
</head>
|
|
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
|
<a name="GDB_002fMI-Thread-Commands"></a>
|
<div class="header">
|
<p>
|
Next: <a href="GDB_002fMI-Ada-Tasking-Commands.html#GDB_002fMI-Ada-Tasking-Commands" accesskey="n" rel="next">GDB/MI Ada Tasking Commands</a>, Previous: <a href="GDB_002fMI-Program-Context.html#GDB_002fMI-Program-Context" accesskey="p" rel="prev">GDB/MI Program Context</a>, Up: <a href="GDB_002fMI.html#GDB_002fMI" accesskey="u" rel="up">GDB/MI</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
|
</div>
|
<hr>
|
<a name="GDB_002fMI-Thread-Commands-1"></a>
|
<h3 class="section">27.11 <small>GDB/MI</small> Thread Commands</h3>
|
|
|
<a name="The-_002dthread_002dinfo-Command"></a>
|
<h4 class="subheading">The <code>-thread-info</code> Command</h4>
|
<a name="index-_002dthread_002dinfo"></a>
|
|
<a name="Synopsis-22"></a>
|
<h4 class="subsubheading">Synopsis</h4>
|
|
<div class="smallexample">
|
<pre class="smallexample"> -thread-info [ <var>thread-id</var> ]
|
</pre></div>
|
|
<p>Reports information about either a specific thread, if the
|
<var>thread-id</var> parameter is present, or about all threads.
|
<var>thread-id</var> is the thread’s global thread ID. When printing
|
information about all threads, also reports the global ID of the
|
current thread.
|
</p>
|
<a name="GDB-Command-21"></a>
|
<h4 class="subsubheading"><small>GDB</small> Command</h4>
|
|
<p>The ‘<samp>info thread</samp>’ command prints the same information
|
about all threads.
|
</p>
|
<a name="Result-3"></a>
|
<h4 class="subsubheading">Result</h4>
|
|
<p>The result is a list of threads. The following attributes are
|
defined for a given thread:
|
</p>
|
<dl compact="compact">
|
<dt>‘<samp>current</samp>’</dt>
|
<dd><p>This field exists only for the current thread. It has the value ‘<samp>*</samp>’.
|
</p>
|
</dd>
|
<dt>‘<samp>id</samp>’</dt>
|
<dd><p>The global identifier that <small>GDB</small> uses to refer to the thread.
|
</p>
|
</dd>
|
<dt>‘<samp>target-id</samp>’</dt>
|
<dd><p>The identifier that the target uses to refer to the thread.
|
</p>
|
</dd>
|
<dt>‘<samp>details</samp>’</dt>
|
<dd><p>Extra information about the thread, in a target-specific format. This
|
field is optional.
|
</p>
|
</dd>
|
<dt>‘<samp>name</samp>’</dt>
|
<dd><p>The name of the thread. If the user specified a name using the
|
<code>thread name</code> command, then this name is given. Otherwise, if
|
<small>GDB</small> can extract the thread name from the target, then that
|
name is given. If <small>GDB</small> cannot find the thread name, then this
|
field is omitted.
|
</p>
|
</dd>
|
<dt>‘<samp>frame</samp>’</dt>
|
<dd><p>The stack frame currently executing in the thread.
|
</p>
|
</dd>
|
<dt>‘<samp>state</samp>’</dt>
|
<dd><p>The thread’s state. The ‘<samp>state</samp>’ field may have the following
|
values:
|
</p>
|
<dl compact="compact">
|
<dt><code>stopped</code></dt>
|
<dd><p>The thread is stopped. Frame information is available for stopped
|
threads.
|
</p>
|
</dd>
|
<dt><code>running</code></dt>
|
<dd><p>The thread is running. There’s no frame information for running
|
threads.
|
</p>
|
</dd>
|
</dl>
|
|
</dd>
|
<dt>‘<samp>core</samp>’</dt>
|
<dd><p>If <small>GDB</small> can find the CPU core on which this thread is running,
|
then this field is the core identifier. This field is optional.
|
</p>
|
</dd>
|
</dl>
|
|
<a name="Example-21"></a>
|
<h4 class="subsubheading">Example</h4>
|
|
<div class="smallexample">
|
<pre class="smallexample">-thread-info
|
^done,threads=[
|
{id="2",target-id="Thread 0xb7e14b90 (LWP 21257)",
|
frame={level="0",addr="0xffffe410",func="__kernel_vsyscall",
|
args=[]},state="running"},
|
{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"},
|
state="running"}],
|
current-thread-id="1"
|
(gdb)
|
</pre></div>
|
|
<a name="The-_002dthread_002dlist_002dids-Command"></a>
|
<h4 class="subheading">The <code>-thread-list-ids</code> Command</h4>
|
<a name="index-_002dthread_002dlist_002dids"></a>
|
|
<a name="Synopsis-23"></a>
|
<h4 class="subsubheading">Synopsis</h4>
|
|
<div class="smallexample">
|
<pre class="smallexample"> -thread-list-ids
|
</pre></div>
|
|
<p>Produces a list of the currently known global <small>GDB</small> thread ids.
|
At the end of the list it also prints the total number of such
|
threads.
|
</p>
|
<p>This command is retained for historical reasons, the
|
<code>-thread-info</code> command should be used instead.
|
</p>
|
<a name="GDB-Command-22"></a>
|
<h4 class="subsubheading"><small>GDB</small> Command</h4>
|
|
<p>Part of ‘<samp>info threads</samp>’ supplies the same information.
|
</p>
|
<a name="Example-22"></a>
|
<h4 class="subsubheading">Example</h4>
|
|
<div class="smallexample">
|
<pre class="smallexample">(gdb)
|
-thread-list-ids
|
^done,thread-ids={thread-id="3",thread-id="2",thread-id="1"},
|
current-thread-id="1",number-of-threads="3"
|
(gdb)
|
</pre></div>
|
|
|
<a name="The-_002dthread_002dselect-Command"></a>
|
<h4 class="subheading">The <code>-thread-select</code> Command</h4>
|
<a name="index-_002dthread_002dselect"></a>
|
|
<a name="Synopsis-24"></a>
|
<h4 class="subsubheading">Synopsis</h4>
|
|
<div class="smallexample">
|
<pre class="smallexample"> -thread-select <var>thread-id</var>
|
</pre></div>
|
|
<p>Make thread with global thread number <var>thread-id</var> the current
|
thread. It prints the number of the new current thread, and the
|
topmost frame for that thread.
|
</p>
|
<p>This command is deprecated in favor of explicitly using the
|
‘<samp>--thread</samp>’ option to each command.
|
</p>
|
<a name="GDB-Command-23"></a>
|
<h4 class="subsubheading"><small>GDB</small> Command</h4>
|
|
<p>The corresponding <small>GDB</small> command is ‘<samp>thread</samp>’.
|
</p>
|
<a name="Example-23"></a>
|
<h4 class="subsubheading">Example</h4>
|
|
<div class="smallexample">
|
<pre class="smallexample">(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)
|
</pre></div>
|
|
<hr>
|
<div class="header">
|
<p>
|
Next: <a href="GDB_002fMI-Ada-Tasking-Commands.html#GDB_002fMI-Ada-Tasking-Commands" accesskey="n" rel="next">GDB/MI Ada Tasking Commands</a>, Previous: <a href="GDB_002fMI-Program-Context.html#GDB_002fMI-Program-Context" accesskey="p" rel="prev">GDB/MI Program Context</a>, Up: <a href="GDB_002fMI.html#GDB_002fMI" accesskey="u" rel="up">GDB/MI</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
|
</div>
|
|
|
|
</body>
|
</html>
|