1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 1988-2021 Free Software Foundation, Inc.
4
5Permission is granted to copy, distribute and/or modify this document
6under the terms of the GNU Free Documentation License, Version 1.3 or
7any later version published by the Free Software Foundation; with the
8Invariant Sections being "Free Software" and "Free Software Needs
9Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
10and with the Back-Cover Texts as in (a) below.
11
12(a) The FSF's Back-Cover Text is: "You are free to copy and modify
13this GNU Manual.  Buying copies from GNU Press supports the FSF in
14developing GNU and promoting software freedom." -->
15<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
16<head>
17<title>Debugging with GDB: Stack</title>
18
19<meta name="description" content="Debugging with GDB: Stack">
20<meta name="keywords" content="Debugging with GDB: Stack">
21<meta name="resource-type" content="document">
22<meta name="distribution" content="global">
23<meta name="Generator" content="makeinfo">
24<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
25<link href="index.html#Top" rel="start" title="Top">
26<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
27<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
28<link href="index.html#Top" rel="up" title="Top">
29<link href="Frames.html#Frames" rel="next" title="Frames">
30<link href="Process-Record-and-Replay.html#Process-Record-and-Replay" rel="previous" title="Process Record and Replay">
31<style type="text/css">
32<!--
33a.summary-letter {text-decoration: none}
34blockquote.smallquotation {font-size: smaller}
35div.display {margin-left: 3.2em}
36div.example {margin-left: 3.2em}
37div.indentedblock {margin-left: 3.2em}
38div.lisp {margin-left: 3.2em}
39div.smalldisplay {margin-left: 3.2em}
40div.smallexample {margin-left: 3.2em}
41div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
42div.smalllisp {margin-left: 3.2em}
43kbd {font-style:oblique}
44pre.display {font-family: inherit}
45pre.format {font-family: inherit}
46pre.menu-comment {font-family: serif}
47pre.menu-preformatted {font-family: serif}
48pre.smalldisplay {font-family: inherit; font-size: smaller}
49pre.smallexample {font-size: smaller}
50pre.smallformat {font-family: inherit; font-size: smaller}
51pre.smalllisp {font-size: smaller}
52span.nocodebreak {white-space:nowrap}
53span.nolinebreak {white-space:nowrap}
54span.roman {font-family:serif; font-weight:normal}
55span.sansserif {font-family:sans-serif; font-weight:normal}
56ul.no-bullet {list-style: none}
57-->
58</style>
59
60
61</head>
62
63<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
64<a name="Stack"></a>
65<div class="header">
66<p>
67Next: <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="previous">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>
68</div>
69<hr>
70<a name="Examining-the-Stack"></a>
71<h2 class="chapter">8 Examining the Stack</h2>
72
73<p>When your program has stopped, the first thing you need to know is where it
74stopped and how it got there.
75</p>
76<a name="index-call-stack"></a>
77<p>Each time your program performs a function call, information about the call
78is generated.
79That information includes the location of the call in your program,
80the arguments of the call,
81and the local variables of the function being called.
82The information is saved in a block of data called a <em>stack frame</em>.
83The stack frames are allocated in a region of memory called the <em>call
84stack</em>.
85</p>
86<p>When your program stops, the <small>GDB</small> commands for examining the
87stack allow you to see all of this information.
88</p>
89<a name="index-selected-frame"></a>
90<p>One of the stack frames is <em>selected</em> by <small>GDB</small> and many
91<small>GDB</small> commands refer implicitly to the selected frame.  In
92particular, whenever you ask <small>GDB</small> for the value of a variable in
93your program, the value is found in the selected frame.  There are
94special <small>GDB</small> commands to select whichever frame you are
95interested in.  See <a href="Selection.html#Selection">Selecting a Frame</a>.
96</p>
97<p>When your program stops, <small>GDB</small> automatically selects the
98currently executing frame and describes it briefly, similar to the
99<code>frame</code> command (see <a href="Frame-Info.html#Frame-Info">Information about a Frame</a>).
100</p>
101<table class="menu" border="0" cellspacing="0">
102<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
103</td></tr>
104<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
105</td></tr>
106<tr><td align="left" valign="top">&bull; <a href="Selection.html#Selection" accesskey="3">Selection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Selecting a frame
107</td></tr>
108<tr><td align="left" valign="top">&bull; <a href="Frame-Info.html#Frame-Info" accesskey="4">Frame Info</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Information on a frame
109</td></tr>
110<tr><td align="left" valign="top">&bull; <a href="Frame-Apply.html#Frame-Apply" accesskey="5">Frame Apply</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Applying a command to several frames
111</td></tr>
112<tr><td align="left" valign="top">&bull; <a href="Frame-Filter-Management.html#Frame-Filter-Management" accesskey="6">Frame Filter Management</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Managing frame filters
113</td></tr>
114<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
115</pre></th></tr></table>
116
117<hr>
118<div class="header">
119<p>
120Next: <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="previous">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>
121</div>
122
123
124
125</body>
126</html>
127