Stack.html 6.5 KB

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