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: Ada testsuite failures


> Joel, I have seen Ada testsuite failures on GNU/Linux for about as long
> as we've had tests.  Do you know the status of these tests when run
> against FSF releases of gnat, rather than the AdaCore version?

I don't work at all with the FSF release of GCC, only with the AdaCore one.

> I suspect it's inadequate debug info.

I wouldn't be surprised. Recents versions of GCC are much better at
not emitting debugging info for unused entity. This has caused us a lot
of trouble when moving to GCC 4.1 for instance, because GNAT generates
of lot of entities that appear unused from the compiler point of view,
but are necessary for the debugger to work properly. We're getting back
to the same project of getting rid of all these encoding in favor of
standard DWARF. This is actually a very active project that we're
working on right now, so hopefully the situation won't be as bad soon.

I can ask that the local patches we maintain in our tree be submitted
for inclusion if you think they'd be accepted. Our opinion was that they
would probably be rejected as a step backward.

> print e_one_two_three
> $2 = (0 => 1, 2, 3)

In this case, for instance, you are probably missing the debugging
info for a type named: p__etable___XA. If you have a look at exp_dbug.ads
in the compiler sources, this is what we call a parallel type which
contains one field. The name of the field is the name of array index type.  

Not very elegant, but necessary in many cases when the platform does not
support stabs.

> print p_one_two_three
> $4 = warning: could not find bounds information on packed array
> can't unpack array
> 
> (gdb) FAIL: gdb.ada/arrayidx.exp: print p_one_two_three, indexes off

This case is probably the same sort of issue. I looked at the sources
and it looks like GDB did not find the parallel type correspoinding
to this array. The parallel type is computed by stripping the ___XP
suffix in the type name (in this case, it looks like GDB failed to
find type p__ptable.

> ptype empty
> type = function return int
> (gdb) FAIL: gdb.ada/null_record.exp: ptype on null record

Strangely, I just noticed that I have the same failure on my side.
I will investigate.

> $1 = warning: could not find bounds information on packed array
> can't unpack array
> 
> (gdb) FAIL: gdb.ada/packed_array.exp: print var

This is probably the same as the packed array case above.

-- 
Joel


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