This is the mail archive of the gdb-patches@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: [patch] Workaround ada (gnat-4.3.0) on x86_64


> > Could you send me the executable so that I can inspect it?
> 
> http://people.redhat.com/jkratoch/packed_tagged/comp_bug
> http://people.redhat.com/jkratoch/packed_tagged/
> (binaries from Fedora 9pre x86_64, gcc-gnat-4.3.0-7.x86_64)

The binary "comp_bug" that you posted there corresponds to the "complicated
testcase". I had a look, and at first glance, I think that what's missing
is the parallel XVE type that is used when we have variant records (records
whose contents depends on the value of a discriminant).  For variant records,
we ignore the size provided by the debugging info, and compute it from the
information contained in the XVE type. The documentation in
gcc/ada/exp_dbug.ads describe the algorithm in more details.

Just to help doing the comparison, attached is the assembly file
generated by our version of the compiler (this is on ia32).

For the simpler example that you provided in this thread (adaff), where
you have a simple null record, I'd be interested in looking at the
debugging info.  This is a straight record with no field inside it.
The debugging info should be trivial and the debugger should be able
to print your variable without any problem.

-- 
Joel

Attachment: comp_bug.s
Description: Text document


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