This is the mail archive of the archer@sourceware.org mailing list for the Archer 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: Tasks



I am looking at fixing this bug as an exercise: http://sourceware.org/ml/gdb/2007-01/msg00117.html


This exercise worked very well. After a lot gdb code reading it turns out that this bug is caused by the fact that when the die for this is read the linkage name is used instead of the name of the variable:


if (die->tag != DW_TAG_namespace)
    name = dwarf2_linkage_name (die, cu);
  else
    name = TYPE_NAME (type);

so this:

(gdb) print _a
No symbol "_a" in current context.

doesnt work but this,

(gdb) print A::inlined()::_a  # I dont think this is legal c++ anyway
A syntax error in expression, near `::_a'.
(gdb) print 'A::inlined()::_a'
$1 = 10
(gdb)

works.

My suggestion would be to always use name and never linkage name... I will try that out.


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