This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Symbol can't be found unless type 'tab'
On 09/10/2012 09:18 PM, Jan Kratochvil wrote:
On Mon, 10 Sep 2012 14:51:29 +0200, Yao Qi wrote:
> <1><2c>: Abbrev Number: 3 (DW_TAG_variable)
> <2d> DW_AT_name : i
> <2f> DW_AT_type : <0x23>
> <33> DW_AT_location : 0x0 (location list)
I guess because GDB does not like such complicated location expression for
glboal variables.
Jan, thanks for the pointer.
The "symptom" is symbol is not found in psymtab, but in symtab when I
press 'tab' which triggers converting psymtab to symtab. I wonder why
symbol 'i' is *not* included in psymtab. Examine the source of
dwarf2read.c:add_partial_symbol, especially the case block for
'DW_TAG_variable', gives me some clue, and I add attribute
DW_AT_external to symbol 'i' like this,
<1><33>: Abbrev Number: 3 (DW_TAG_variable)
<34> DW_AT_name : i
<36> DW_AT_type : <0x2a>
<3a> DW_AT_external : 1 <--- here
<3b> DW_AT_location : 0x0 (location list)
and then symbol 'i' can be found by GDB without typing extra 'tab'.
--
Yao