This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]