Data.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  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: Data</title>
  16. <meta name="description" content="Debugging with GDB: Data">
  17. <meta name="keywords" content="Debugging with GDB: Data">
  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="Expressions.html#Expressions" rel="next" title="Expressions">
  27. <link href="Machine-Code.html#Machine-Code" rel="previous" title="Machine Code">
  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="Data"></a>
  59. <div class="header">
  60. <p>
  61. Next: <a href="Optimized-Code.html#Optimized-Code" accesskey="n" rel="next">Optimized Code</a>, Previous: <a href="Source.html#Source" accesskey="p" rel="previous">Source</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-Data"></a>
  65. <h2 class="chapter">10 Examining Data</h2>
  66. <a name="index-printing-data"></a>
  67. <a name="index-examining-data"></a>
  68. <a name="index-print"></a>
  69. <a name="index-inspect"></a>
  70. <p>The usual way to examine data in your program is with the <code>print</code>
  71. command (abbreviated <code>p</code>), or its synonym <code>inspect</code>. It
  72. evaluates and prints the value of an expression of the language your
  73. program is written in (see <a href="Languages.html#Languages">Using <small>GDB</small> with
  74. Different Languages</a>). It may also print the expression using a
  75. Python-based pretty-printer (see <a href="Pretty-Printing.html#Pretty-Printing">Pretty Printing</a>).
  76. </p>
  77. <dl compact="compact">
  78. <dt><code>print [[<var>options</var>] --] <var>expr</var></code></dt>
  79. <dt><code>print [[<var>options</var>] --] /<var>f</var> <var>expr</var></code></dt>
  80. <dd><p><var>expr</var> is an expression (in the source language). By default the
  81. value of <var>expr</var> is printed in a format appropriate to its data type;
  82. you can choose a different format by specifying &lsquo;<samp>/<var>f</var></samp>&rsquo;, where
  83. <var>f</var> is a letter specifying the format; see <a href="Output-Formats.html#Output-Formats">Output
  84. Formats</a>.
  85. </p>
  86. <a name="print-options"></a><p>The <code>print</code> command supports a number of options that allow
  87. overriding relevant global print settings as set by <code>set print</code>
  88. subcommands:
  89. </p>
  90. <dl compact="compact">
  91. <dt><code>-address [<code>on</code>|<code>off</code>]</code></dt>
  92. <dd><p>Set printing of addresses.
  93. Related setting: <a href="Print-Settings.html#set-print-address">set print address</a>.
  94. </p>
  95. </dd>
  96. <dt><code>-array [<code>on</code>|<code>off</code>]</code></dt>
  97. <dd><p>Pretty formatting of arrays.
  98. Related setting: <a href="Print-Settings.html#set-print-array">set print array</a>.
  99. </p>
  100. </dd>
  101. <dt><code>-array-indexes [<code>on</code>|<code>off</code>]</code></dt>
  102. <dd><p>Set printing of array indexes.
  103. Related setting: <a href="Print-Settings.html#set-print-array_002dindexes">set print array-indexes</a>.
  104. </p>
  105. </dd>
  106. <dt><code>-elements <var>number-of-elements</var>|<code>unlimited</code></code></dt>
  107. <dd><p>Set limit on string chars or array elements to print. The value
  108. <code>unlimited</code> causes there to be no limit. Related setting:
  109. <a href="Print-Settings.html#set-print-elements">set print elements</a>.
  110. </p>
  111. </dd>
  112. <dt><code>-max-depth <var>depth</var>|<code>unlimited</code></code></dt>
  113. <dd><p>Set the threshold after which nested structures are replaced with
  114. ellipsis. Related setting: <a href="Print-Settings.html#set-print-max_002ddepth">set print max-depth</a>.
  115. </p>
  116. </dd>
  117. <dt><code>-null-stop [<code>on</code>|<code>off</code>]</code></dt>
  118. <dd><p>Set printing of char arrays to stop at first null char. Related
  119. setting: <a href="Print-Settings.html#set-print-null_002dstop">set print null-stop</a>.
  120. </p>
  121. </dd>
  122. <dt><code>-object [<code>on</code>|<code>off</code>]</code></dt>
  123. <dd><p>Set printing C<tt>++</tt> virtual function tables. Related setting:
  124. <a href="Print-Settings.html#set-print-object">set print object</a>.
  125. </p>
  126. </dd>
  127. <dt><code>-pretty [<code>on</code>|<code>off</code>]</code></dt>
  128. <dd><p>Set pretty formatting of structures. Related setting: <a href="Print-Settings.html#set-print-pretty">set print pretty</a>.
  129. </p>
  130. </dd>
  131. <dt><code>-raw-values [<code>on</code>|<code>off</code>]</code></dt>
  132. <dd><p>Set whether to print values in raw form, bypassing any
  133. pretty-printers for that value. Related setting: <a href="Print-Settings.html#set-print-raw_002dvalues">set print raw-values</a>.
  134. </p>
  135. </dd>
  136. <dt><code>-repeats <var>number-of-repeats</var>|<code>unlimited</code></code></dt>
  137. <dd><p>Set threshold for repeated print elements. <code>unlimited</code> causes
  138. all elements to be individually printed. Related setting: <a href="Print-Settings.html#set-print-repeats">set print repeats</a>.
  139. </p>
  140. </dd>
  141. <dt><code>-static-members [<code>on</code>|<code>off</code>]</code></dt>
  142. <dd><p>Set printing C<tt>++</tt> static members. Related setting: <a href="Print-Settings.html#set-print-static_002dmembers">set print static-members</a>.
  143. </p>
  144. </dd>
  145. <dt><code>-symbol [<code>on</code>|<code>off</code>]</code></dt>
  146. <dd><p>Set printing of symbol names when printing pointers. Related setting:
  147. <a href="Print-Settings.html#set-print-symbol">set print symbol</a>.
  148. </p>
  149. </dd>
  150. <dt><code>-union [<code>on</code>|<code>off</code>]</code></dt>
  151. <dd><p>Set printing of unions interior to structures. Related setting:
  152. <a href="Print-Settings.html#set-print-union">set print union</a>.
  153. </p>
  154. </dd>
  155. <dt><code>-vtbl [<code>on</code>|<code>off</code>]</code></dt>
  156. <dd><p>Set printing of C++ virtual function tables. Related setting:
  157. <a href="Print-Settings.html#set-print-vtbl">set print vtbl</a>.
  158. </p></dd>
  159. </dl>
  160. <p>Because the <code>print</code> command accepts arbitrary expressions which
  161. may look like options (including abbreviations), if you specify any
  162. command option, then you must use a double dash (<code>--</code>) to mark
  163. the end of option processing.
  164. </p>
  165. <p>For example, this prints the value of the <code>-p</code> expression:
  166. </p>
  167. <div class="smallexample">
  168. <pre class="smallexample">(gdb) print -p
  169. </pre></div>
  170. <p>While this repeats the last value in the value history (see below)
  171. with the <code>-pretty</code> option in effect:
  172. </p>
  173. <div class="smallexample">
  174. <pre class="smallexample">(gdb) print -p --
  175. </pre></div>
  176. <p>Here is an example including both on option and an expression:
  177. </p>
  178. <div class="smallexample">
  179. <pre class="smallexample">(gdb) print -pretty -- *myptr
  180. $1 = {
  181. next = 0x0,
  182. flags = {
  183. sweet = 1,
  184. sour = 1
  185. },
  186. meat = 0x54 &quot;Pork&quot;
  187. }
  188. </pre></div>
  189. </dd>
  190. <dt><code>print [<var>options</var>]</code></dt>
  191. <dt><code>print [<var>options</var>] /<var>f</var></code></dt>
  192. <dd><a name="index-reprint-the-last-value"></a>
  193. <p>If you omit <var>expr</var>, <small>GDB</small> displays the last value again (from the
  194. <em>value history</em>; see <a href="Value-History.html#Value-History">Value History</a>). This allows you to
  195. conveniently inspect the same value in an alternative format.
  196. </p></dd>
  197. </dl>
  198. <p>A more low-level way of examining data is with the <code>x</code> command.
  199. It examines data in memory at a specified address and prints it in a
  200. specified format. See <a href="Memory.html#Memory">Examining Memory</a>.
  201. </p>
  202. <p>If you are interested in information about types, or about how the
  203. fields of a struct or a class are declared, use the <code>ptype <var>exp</var></code>
  204. command rather than <code>print</code>. See <a href="Symbols.html#Symbols">Examining the Symbol
  205. Table</a>.
  206. </p>
  207. <a name="index-exploring-hierarchical-data-structures"></a>
  208. <a name="index-explore"></a>
  209. <p>Another way of examining values of expressions and type information is
  210. through the Python extension command <code>explore</code> (available only if
  211. the <small>GDB</small> build is configured with <code>--with-python</code>). It
  212. offers an interactive way to start at the highest level (or, the most
  213. abstract level) of the data type of an expression (or, the data type
  214. itself) and explore all the way down to leaf scalar values/fields
  215. embedded in the higher level data types.
  216. </p>
  217. <dl compact="compact">
  218. <dt><code>explore <var>arg</var></code></dt>
  219. <dd><p><var>arg</var> is either an expression (in the source language), or a type
  220. visible in the current context of the program being debugged.
  221. </p></dd>
  222. </dl>
  223. <p>The working of the <code>explore</code> command can be illustrated with an
  224. example. If a data type <code>struct ComplexStruct</code> is defined in your
  225. C program as
  226. </p>
  227. <div class="smallexample">
  228. <pre class="smallexample">struct SimpleStruct
  229. {
  230. int i;
  231. double d;
  232. };
  233. struct ComplexStruct
  234. {
  235. struct SimpleStruct *ss_p;
  236. int arr[10];
  237. };
  238. </pre></div>
  239. <p>followed by variable declarations as
  240. </p>
  241. <div class="smallexample">
  242. <pre class="smallexample">struct SimpleStruct ss = { 10, 1.11 };
  243. struct ComplexStruct cs = { &amp;ss, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } };
  244. </pre></div>
  245. <p>then, the value of the variable <code>cs</code> can be explored using the
  246. <code>explore</code> command as follows.
  247. </p>
  248. <div class="smallexample">
  249. <pre class="smallexample">(gdb) explore cs
  250. The value of `cs' is a struct/class of type `struct ComplexStruct' with
  251. the following fields:
  252. ss_p = &lt;Enter 0 to explore this field of type `struct SimpleStruct *'&gt;
  253. arr = &lt;Enter 1 to explore this field of type `int [10]'&gt;
  254. Enter the field number of choice:
  255. </pre></div>
  256. <p>Since the fields of <code>cs</code> are not scalar values, you are being
  257. prompted to chose the field you want to explore. Let&rsquo;s say you choose
  258. the field <code>ss_p</code> by entering <code>0</code>. Then, since this field is a
  259. pointer, you will be asked if it is pointing to a single value. From
  260. the declaration of <code>cs</code> above, it is indeed pointing to a single
  261. value, hence you enter <code>y</code>. If you enter <code>n</code>, then you will
  262. be asked if it were pointing to an array of values, in which case this
  263. field will be explored as if it were an array.
  264. </p>
  265. <div class="smallexample">
  266. <pre class="smallexample">`cs.ss_p' is a pointer to a value of type `struct SimpleStruct'
  267. Continue exploring it as a pointer to a single value [y/n]: y
  268. The value of `*(cs.ss_p)' is a struct/class of type `struct
  269. SimpleStruct' with the following fields:
  270. i = 10 .. (Value of type `int')
  271. d = 1.1100000000000001 .. (Value of type `double')
  272. Press enter to return to parent value:
  273. </pre></div>
  274. <p>If the field <code>arr</code> of <code>cs</code> was chosen for exploration by
  275. entering <code>1</code> earlier, then since it is as array, you will be
  276. prompted to enter the index of the element in the array that you want
  277. to explore.
  278. </p>
  279. <div class="smallexample">
  280. <pre class="smallexample">`cs.arr' is an array of `int'.
  281. Enter the index of the element you want to explore in `cs.arr': 5
  282. `(cs.arr)[5]' is a scalar value of type `int'.
  283. (cs.arr)[5] = 4
  284. Press enter to return to parent value:
  285. </pre></div>
  286. <p>In general, at any stage of exploration, you can go deeper towards the
  287. leaf values by responding to the prompts appropriately, or hit the
  288. return key to return to the enclosing data structure (the <i>higher</i>
  289. level data structure).
  290. </p>
  291. <p>Similar to exploring values, you can use the <code>explore</code> command to
  292. explore types. Instead of specifying a value (which is typically a
  293. variable name or an expression valid in the current context of the
  294. program being debugged), you specify a type name. If you consider the
  295. same example as above, your can explore the type
  296. <code>struct ComplexStruct</code> by passing the argument
  297. <code>struct ComplexStruct</code> to the <code>explore</code> command.
  298. </p>
  299. <div class="smallexample">
  300. <pre class="smallexample">(gdb) explore struct ComplexStruct
  301. </pre></div>
  302. <p>By responding to the prompts appropriately in the subsequent interactive
  303. session, you can explore the type <code>struct ComplexStruct</code> in a
  304. manner similar to how the value <code>cs</code> was explored in the above
  305. example.
  306. </p>
  307. <p>The <code>explore</code> command also has two sub-commands,
  308. <code>explore value</code> and <code>explore type</code>. The former sub-command is
  309. a way to explicitly specify that value exploration of the argument is
  310. being invoked, while the latter is a way to explicitly specify that type
  311. exploration of the argument is being invoked.
  312. </p>
  313. <dl compact="compact">
  314. <dt><code>explore value <var>expr</var></code></dt>
  315. <dd><a name="index-explore-value"></a>
  316. <p>This sub-command of <code>explore</code> explores the value of the
  317. expression <var>expr</var> (if <var>expr</var> is an expression valid in the
  318. current context of the program being debugged). The behavior of this
  319. command is identical to that of the behavior of the <code>explore</code>
  320. command being passed the argument <var>expr</var>.
  321. </p>
  322. </dd>
  323. <dt><code>explore type <var>arg</var></code></dt>
  324. <dd><a name="index-explore-type"></a>
  325. <p>This sub-command of <code>explore</code> explores the type of <var>arg</var> (if
  326. <var>arg</var> is a type visible in the current context of program being
  327. debugged), or the type of the value/expression <var>arg</var> (if <var>arg</var>
  328. is an expression valid in the current context of the program being
  329. debugged). If <var>arg</var> is a type, then the behavior of this command is
  330. identical to that of the <code>explore</code> command being passed the
  331. argument <var>arg</var>. If <var>arg</var> is an expression, then the behavior of
  332. this command will be identical to that of the <code>explore</code> command
  333. being passed the type of <var>arg</var> as the argument.
  334. </p></dd>
  335. </dl>
  336. <table class="menu" border="0" cellspacing="0">
  337. <tr><td align="left" valign="top">&bull; <a href="Expressions.html#Expressions" accesskey="1">Expressions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Expressions
  338. </td></tr>
  339. <tr><td align="left" valign="top">&bull; <a href="Ambiguous-Expressions.html#Ambiguous-Expressions" accesskey="2">Ambiguous Expressions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Ambiguous Expressions
  340. </td></tr>
  341. <tr><td align="left" valign="top">&bull; <a href="Variables.html#Variables" accesskey="3">Variables</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Program variables
  342. </td></tr>
  343. <tr><td align="left" valign="top">&bull; <a href="Arrays.html#Arrays" accesskey="4">Arrays</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Artificial arrays
  344. </td></tr>
  345. <tr><td align="left" valign="top">&bull; <a href="Output-Formats.html#Output-Formats" accesskey="5">Output Formats</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Output formats
  346. </td></tr>
  347. <tr><td align="left" valign="top">&bull; <a href="Memory.html#Memory" accesskey="6">Memory</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Examining memory
  348. </td></tr>
  349. <tr><td align="left" valign="top">&bull; <a href="Auto-Display.html#Auto-Display" accesskey="7">Auto Display</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Automatic display
  350. </td></tr>
  351. <tr><td align="left" valign="top">&bull; <a href="Print-Settings.html#Print-Settings" accesskey="8">Print Settings</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Print settings
  352. </td></tr>
  353. <tr><td align="left" valign="top">&bull; <a href="Pretty-Printing.html#Pretty-Printing" accesskey="9">Pretty Printing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Python pretty printing
  354. </td></tr>
  355. <tr><td align="left" valign="top">&bull; <a href="Value-History.html#Value-History">Value History</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Value history
  356. </td></tr>
  357. <tr><td align="left" valign="top">&bull; <a href="Convenience-Vars.html#Convenience-Vars">Convenience Vars</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Convenience variables
  358. </td></tr>
  359. <tr><td align="left" valign="top">&bull; <a href="Convenience-Funs.html#Convenience-Funs">Convenience Funs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Convenience functions
  360. </td></tr>
  361. <tr><td align="left" valign="top">&bull; <a href="Registers.html#Registers">Registers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Registers
  362. </td></tr>
  363. <tr><td align="left" valign="top">&bull; <a href="Floating-Point-Hardware.html#Floating-Point-Hardware">Floating Point Hardware</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Floating point hardware
  364. </td></tr>
  365. <tr><td align="left" valign="top">&bull; <a href="Vector-Unit.html#Vector-Unit">Vector Unit</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Vector Unit
  366. </td></tr>
  367. <tr><td align="left" valign="top">&bull; <a href="OS-Information.html#OS-Information">OS Information</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Auxiliary data provided by operating system
  368. </td></tr>
  369. <tr><td align="left" valign="top">&bull; <a href="Memory-Region-Attributes.html#Memory-Region-Attributes">Memory Region Attributes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Memory region attributes
  370. </td></tr>
  371. <tr><td align="left" valign="top">&bull; <a href="Dump_002fRestore-Files.html#Dump_002fRestore-Files">Dump/Restore Files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Copy between memory and a file
  372. </td></tr>
  373. <tr><td align="left" valign="top">&bull; <a href="Core-File-Generation.html#Core-File-Generation">Core File Generation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Cause a program dump its core
  374. </td></tr>
  375. <tr><td align="left" valign="top">&bull; <a href="Character-Sets.html#Character-Sets">Character Sets</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Debugging programs that use a different
  376. character set than GDB does
  377. </td></tr>
  378. <tr><td align="left" valign="top">&bull; <a href="Caching-Target-Data.html#Caching-Target-Data">Caching Target Data</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Data caching for targets
  379. </td></tr>
  380. <tr><td align="left" valign="top">&bull; <a href="Searching-Memory.html#Searching-Memory">Searching Memory</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Searching memory for a sequence of bytes
  381. </td></tr>
  382. <tr><td align="left" valign="top">&bull; <a href="Value-Sizes.html#Value-Sizes">Value Sizes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Managing memory allocated for values
  383. </td></tr>
  384. </table>
  385. <hr>
  386. <div class="header">
  387. <p>
  388. Next: <a href="Optimized-Code.html#Optimized-Code" accesskey="n" rel="next">Optimized Code</a>, Previous: <a href="Source.html#Source" accesskey="p" rel="previous">Source</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>
  389. </div>
  390. </body>
  391. </html>