blob: 48b6f75ca0603aa3408dbc48acc9a8ab73c933a5 [file] [log] [blame]
<html lang="en">
<head>
<title>Stack - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="prev" href="Process-Record-and-Replay.html#Process-Record-and-Replay" title="Process Record and Replay">
<link rel="next" href="Source.html#Source" title="Source">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Stack"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Source.html#Source">Source</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Process-Record-and-Replay.html#Process-Record-and-Replay">Process Record and Replay</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
<hr>
</div>
<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-396"></a>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 <dfn>stack frame</dfn>.
The stack frames are allocated in a region of memory called the <dfn>call
stack</dfn>.
<p>When your program stops, the <span class="sc">gdb</span> commands for examining the
stack allow you to see all of this information.
<p><a name="index-selected-frame-397"></a>One of the stack frames is <dfn>selected</dfn> by <span class="sc">gdb</span> and many
<span class="sc">gdb</span> commands refer implicitly to the selected frame. In
particular, whenever you ask <span class="sc">gdb</span> for the value of a variable in
your program, the value is found in the selected frame. There are
special <span class="sc">gdb</span> commands to select whichever frame you are
interested in. See <a href="Selection.html#Selection">Selecting a Frame</a>.
<p>When your program stops, <span class="sc">gdb</span> 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>).
<ul class="menu">
<li><a accesskey="1" href="Frames.html#Frames">Frames</a>: Stack frames
<li><a accesskey="2" href="Backtrace.html#Backtrace">Backtrace</a>: Backtraces
<li><a accesskey="3" href="Selection.html#Selection">Selection</a>: Selecting a frame
<li><a accesskey="4" href="Frame-Info.html#Frame-Info">Frame Info</a>: Information on a frame
</ul>
</body></html>