objdump: circular debug information error message // <undefined> types in output
Roul Oldenburger
oldenburger.roul@rheinmetall-de.com
Tue Nov 11 12:24:00 GMT 2003
Hi,
seems like nobody could help on my last question (see below) so I add
this message to it:
I found 'objdump --debugging' printing lots of error messages/ warnings like
'debug_get_real_type: circular debug information for int'
and creating debug info output describing structures which have
components in it with no type ...
' <undefined> *static___XVL; /* bitsize 32, bitpos 0 */'
for example.
What I also found is that using the same version of binutils on the same
executable but on a different machine ... there are no warnings about
circular debug info given and the <undefined> entries are changed into
the type I do expect.
Question: What did I wrong? What can I do to find out?
I took binutils 2.14 from its homepage and compiled it on either
machine. I made sure I would use this newly compiled objdump.
I am sorry if it's something stupid and simple and I waste your time ...
I have no idea - please tell me.
Roul
--------------------------------------------------------------------
> Hello again,
>
> Ian already helped me with this topic but this time I guess its a problem of configuring binutils the right way and not an objdump question.
>
> What happened... I am parsing 'objdump --debugging' output from executables compiled with GNAT from Ada sources to reconstruct trees of structure types. It worked fine with the given debuginfos until I came across empty type descriptions which have an 'id 0' entry. I found the expected type description with a special suffix added to its name '___XVE' with components in it having suffixes like '___XVA4' and '___XVL' ...
> as Ian guessed they are Ada specific and Joel from gdb said these things are explained in GNAT in exp_dbug.ads (found in gcc/ada).
> It says the given types having the XVE suffix are variable entities having one or more components with a variable length, which explains why bitpositions are all 0.
> So I expanded the parser and now came to the point where I found components with 'undefined' type designators ... which aren't very helpful.
>
> An example:
> struct awu_siso_shared_memory__shared_memory_description___XVE { /* size 4 id 3576 */
> struct awu_siso_shared_memory__shared_memory_basic_description /* id 3065 */ _parent; /* bitsize 256, bitpos 0 */
> struct awu_siso_shared_memory__version_description /* id 3068 */ version; /* bitsize 128, bitpos 0 */
> <undefined> *static___XVL; /* bitsize 32, bitpos 0 */
> struct awu_siso_shared_memory__dynamic_shared_memory_table /* id 3570 */ dynamic___XVA4; /* bitsize 207264, bitpos 0 */
> struct awu_siso_shared_memory__future_description /* id 3573 */ future; /* bitsize 43904, bitpos 0 */
> struct awu_siso_shared_memory__data_field_description /* id 3496 */ data_field; /* bitsize 8647040, bitpos 0 */
> struct awu_siso_shared_memory__environment_description /* id 3558 */ environment; /* bitsize 28061216, bitpos 0 */
> };
>
> The component with variable length is missing the type ...
>
> What I found is that running objdump on a different machine using the same executable gives a reasonable description without <undefined> types.
>
> I have installed binutils 2.13.1 on my machine ... on the development system I cannot install a recent version of binutils (2.11 is there), so I unpacked and built (but not installed) binutils 2.14 in my development path.
>
> Am I right if I guess the local objdump still uses the libbfd from the installed 2.11 ?
> How can I configure / install binutils separate without disturbing the current system?
>
> Or am I totally wrong .... any other ideas?
>
> Thanks a lot
> Roul
More information about the Binutils
mailing list