hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2021 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." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Debugging with GDB: Symbol Errors</title>
 
<meta name="description" content="Debugging with GDB: Symbol Errors">
<meta name="keywords" content="Debugging with GDB: Symbol Errors">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="GDB-Files.html#GDB-Files" rel="up" title="GDB Files">
<link href="Data-Files.html#Data-Files" rel="next" title="Data Files">
<link href="Index-Files.html#Index-Files" rel="previous" title="Index Files">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Symbol-Errors"></a>
<div class="header">
<p>
Next: <a href="Data-Files.html#Data-Files" accesskey="n" rel="next">Data Files</a>, Previous: <a href="Index-Files.html#Index-Files" accesskey="p" rel="previous">Index Files</a>, Up: <a href="GDB-Files.html#GDB-Files" accesskey="u" rel="up">GDB Files</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>
</div>
<hr>
<a name="Errors-Reading-Symbol-Files"></a>
<h3 class="section">18.6 Errors Reading Symbol Files</h3>
 
<p>While reading a symbol file, <small>GDB</small> occasionally encounters problems,
such as symbol types it does not recognize, or known bugs in compiler
output.  By default, <small>GDB</small> does not notify you of such problems, since
they are relatively common and primarily of interest to people
debugging compilers.  If you are interested in seeing information
about ill-constructed symbol tables, you can either ask <small>GDB</small> to print
only one message about each such type of problem, no matter how many
times the problem occurs; or you can ask <small>GDB</small> to print more messages,
to see how many times the problems occur, with the <code>set
complaints</code> command (see <a href="Messages_002fWarnings.html#Messages_002fWarnings">Optional Warnings and
Messages</a>).
</p>
<p>The messages currently printed, and their meanings, include:
</p>
<dl compact="compact">
<dt><code>inner block not inside outer block in <var>symbol</var></code></dt>
<dd>
<p>The symbol information shows where symbol scopes begin and end
(such as at the start of a function or a block of statements).  This
error indicates that an inner scope block is not fully contained
in its outer scope blocks.
</p>
<p><small>GDB</small> circumvents the problem by treating the inner block as if it had
the same scope as the outer block.  In the error message, <var>symbol</var>
may be shown as &ldquo;<code>(don't know)</code>&rdquo; if the outer block is not a
function.
</p>
</dd>
<dt><code>block at <var>address</var> out of order</code></dt>
<dd>
<p>The symbol information for symbol scope blocks should occur in
order of increasing addresses.  This error indicates that it does not
do so.
</p>
<p><small>GDB</small> does not circumvent this problem, and has trouble
locating symbols in the source file whose symbols it is reading.  (You
can often determine what source file is affected by specifying
<code>set verbose on</code>.  See <a href="Messages_002fWarnings.html#Messages_002fWarnings">Optional Warnings and
Messages</a>.)
</p>
</dd>
<dt><code>bad block start address patched</code></dt>
<dd>
<p>The symbol information for a symbol scope block has a start address
smaller than the address of the preceding source line.  This is known
to occur in the SunOS 4.1.1 (and earlier) C compiler.
</p>
<p><small>GDB</small> circumvents the problem by treating the symbol scope block as
starting on the previous source line.
</p>
</dd>
<dt><code>bad string table offset in symbol <var>n</var></code></dt>
<dd>
<a name="index-foo"></a>
<p>Symbol number <var>n</var> contains a pointer into the string table which is
larger than the size of the string table.
</p>
<p><small>GDB</small> circumvents the problem by considering the symbol to have the
name <code>foo</code>, which may cause other problems if many symbols end up
with this name.
</p>
</dd>
<dt><code>unknown symbol type <code>0x<var>nn</var></code></code></dt>
<dd>
<p>The symbol information contains new data types that <small>GDB</small> does
not yet know how to read.  <code>0x<var>nn</var></code> is the symbol type of the
uncomprehended information, in hexadecimal.
</p>
<p><small>GDB</small> circumvents the error by ignoring this symbol information.
This usually allows you to debug your program, though certain symbols
are not accessible.  If you encounter such a problem and feel like
debugging it, you can debug <code>gdb</code> with itself, breakpoint
on <code>complain</code>, then go up to the function <code>read_dbx_symtab</code>
and examine <code>*bufp</code> to see the symbol.
</p>
</dd>
<dt><code>stub type has NULL name</code></dt>
<dd>
<p><small>GDB</small> could not find the full definition for a struct or class.
</p>
</dd>
<dt><code>const/volatile indicator missing (ok if using g++ v1.x), got&hellip;</code></dt>
<dd><p>The symbol information for a C<tt>++</tt> member function is missing some
information that recent versions of the compiler should have output for
it.
</p>
</dd>
<dt><code>info mismatch between compiler and debugger</code></dt>
<dd>
<p><small>GDB</small> could not parse a type specification output by the compiler.
</p>
</dd>
</dl>
 
<hr>
<div class="header">
<p>
Next: <a href="Data-Files.html#Data-Files" accesskey="n" rel="next">Data Files</a>, Previous: <a href="Index-Files.html#Index-Files" accesskey="p" rel="previous">Index Files</a>, Up: <a href="GDB-Files.html#GDB-Files" accesskey="u" rel="up">GDB Files</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>
</div>
 
 
 
</body>
</html>