3 <title>Debugging with GDB
</title>
4 <meta http-equiv=
"Content-Type" content=
"text/html">
5 <meta name=
"description" content=
"Debugging with GDB">
6 <meta name=
"generator" content=
"makeinfo 4.3">
7 <link href=
"http://www.gnu.org/software/texinfo/" rel=
"generator-home">
12 Node:
<a name=
"Symbol%20Errors">Symbol Errors
</a>,
13 Previous:
<a rel=
"previous" accesskey=
"p" href=
"Files.html#Files">Files
</a>,
14 Up:
<a rel=
"up" accesskey=
"u" href=
"GDB-Files.html#GDB%20Files">GDB Files
</a>
18 <h3 class=
"section">Errors reading symbol files
</h3>
20 <p>While reading a symbol file, GDB occasionally encounters problems,
21 such as symbol types it does not recognize, or known bugs in compiler
22 output. By default, GDB does not notify you of such problems, since
23 they are relatively common and primarily of interest to people
24 debugging compilers. If you are interested in seeing information
25 about ill-constructed symbol tables, you can either ask GDB to print
26 only one message about each such type of problem, no matter how many
27 times the problem occurs; or you can ask GDB to print more messages,
28 to see how many times the problems occur, with the
<code>set
29 complaints
</code> command (see
<a href=
"Messages-Warnings.html#Messages%2fWarnings">Optional warnings and messages
</a>).
31 <p>The messages currently printed, and their meanings, include:
34 <dt><code>inner block not inside outer block in
</code><var>symbol
</var><code></code>
36 The symbol information shows where symbol scopes begin and end
37 (such as at the start of a function or a block of statements). This
38 error indicates that an inner scope block is not fully contained
39 in its outer scope blocks.
41 GDB circumvents the problem by treating the inner block as if it had
42 the same scope as the outer block. In the error message,
<var>symbol
</var>
43 may be shown as
"<code>(don't know)</code>" if the outer block is not a
46 <br><dt><code>block at
</code><var>address
</var><code> out of order
</code>
48 The symbol information for symbol scope blocks should occur in
49 order of increasing addresses. This error indicates that it does not
52 GDB does not circumvent this problem, and has trouble
53 locating symbols in the source file whose symbols it is reading. (You
54 can often determine what source file is affected by specifying
55 <code>set verbose on
</code>. See
<a href=
"Messages-Warnings.html#Messages%2fWarnings">Optional warnings and messages
</a>.)
57 <br><dt><code>bad block start address patched
</code>
59 The symbol information for a symbol scope block has a start address
60 smaller than the address of the preceding source line. This is known
61 to occur in the SunOS
4.1.1 (and earlier) C compiler.
63 GDB circumvents the problem by treating the symbol scope block as
64 starting on the previous source line.
66 <br><dt><code>bad string table offset in symbol
</code><var>n
</var><code></code>
68 Symbol number
<var>n
</var> contains a pointer into the string table which is
69 larger than the size of the string table.
71 GDB circumvents the problem by considering the symbol to have the
72 name
<code>foo
</code>, which may cause other problems if many symbols end up
75 <br><dt><code>unknown symbol type
0x
</code><var>nn
</var><code></code>
77 The symbol information contains new data types that GDB does
78 not yet know how to read.
<code>0x
</code><var>nn
</var><code></code> is the symbol type of the
79 uncomprehended information, in hexadecimal.
81 GDB circumvents the error by ignoring this symbol information.
82 This usually allows you to debug your program, though certain symbols
83 are not accessible. If you encounter such a problem and feel like
84 debugging it, you can debug
<code>gdb
</code> with itself, breakpoint
85 on
<code>complain
</code>, then go up to the function
<code>read_dbx_symtab
</code>
86 and examine
<code>*bufp
</code> to see the symbol.
88 <br><dt><code>stub type has NULL name
</code>
90 GDB could not find the full definition for a struct or class.
92 <br><dt><code>const/volatile indicator missing (ok if using g++ v1.x), got...
</code>
93 <dd>The symbol information for a C
<tt>++
</tt> member function is missing some
94 information that recent versions of the compiler should have output for
97 <br><dt><code>info mismatch between compiler and debugger
</code>
99 GDB could not parse a type specification output by the compiler.