blob: e8ca7d1e35ff6240d485f25690c547007b4fbed3 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2015 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: Stack</title>
<meta name="description" content="Debugging with GDB: Stack">
<meta name="keywords" content="Debugging with GDB: Stack">
<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="index.html#Top" rel="up" title="Top">
<link href="Frames.html#Frames" rel="next" title="Frames">
<link href="Process-Record-and-Replay.html#Process-Record-and-Replay" rel="prev" title="Process Record and Replay">
<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="Stack"></a>
<div class="header">
<p>
Next: <a href="Source.html#Source" accesskey="n" rel="next">Source</a>, Previous: <a href="Process-Record-and-Replay.html#Process-Record-and-Replay" accesskey="p" rel="prev">Process Record and Replay</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<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="Examining-the-Stack"></a>
<h2 class="chapter">8 Examining the Stack</h2>
<p>When your program has stopped, the first thing you need to know is where it
stopped and how it got there.
</p>
<a name="index-call-stack"></a>
<p>Each time your program performs a function call, information about the call
is generated.
That information includes the location of the call in your program,
the arguments of the call,
and the local variables of the function being called.
The information is saved in a block of data called a <em>stack frame</em>.
The stack frames are allocated in a region of memory called the <em>call
stack</em>.
</p>
<p>When your program stops, the <small>GDB</small> commands for examining the
stack allow you to see all of this information.
</p>
<a name="index-selected-frame"></a>
<p>One of the stack frames is <em>selected</em> by <small>GDB</small> and many
<small>GDB</small> commands refer implicitly to the selected frame. In
particular, whenever you ask <small>GDB</small> for the value of a variable in
your program, the value is found in the selected frame. There are
special <small>GDB</small> commands to select whichever frame you are
interested in. See <a href="Selection.html#Selection">Selecting a Frame</a>.
</p>
<p>When your program stops, <small>GDB</small> automatically selects the
currently executing frame and describes it briefly, similar to the
<code>frame</code> command (see <a href="Frame-Info.html#Frame-Info">Information about a Frame</a>).
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Frames.html#Frames" accesskey="1">Frames</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Stack frames
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Backtrace.html#Backtrace" accesskey="2">Backtrace</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Backtraces
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Frame-Filter-Management.html#Frame-Filter-Management" accesskey="3">Frame Filter Management</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Managing frame filters
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Selection.html#Selection" accesskey="4">Selection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Selecting a frame
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Frame-Info.html#Frame-Info" accesskey="5">Frame Info</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Information on a frame
</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
</pre></th></tr></table>
<hr>
<div class="header">
<p>
Next: <a href="Source.html#Source" accesskey="n" rel="next">Source</a>, Previous: <a href="Process-Record-and-Replay.html#Process-Record-and-Replay" accesskey="p" rel="prev">Process Record and Replay</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<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>