PING: PATCH: PR backtrace/14646: [x32] backtrace doesn't work

Mark Kettenis mark.kettenis@xs4all.nl
Mon Oct 15 10:10:00 GMT 2012


> Date: Tue, 9 Oct 2012 09:38:32 -0700
> From: "H.J. Lu" <hjl.tools@gmail.com>
> 
> The current GDB doesn't work on x32.  This patch:
> 
> http://sourceware.org/ml/gdb-patches/2012-09/msg00714.html
> 
> isn't perfect where $pc/$sp is displayed as 64-bit integer.  But
> otherwise, GDB works fine.

Finally found some time to dig a little bit deeper.  The x32 ABI isn't
the only 32-bit ABI with 64-bit registers.  The mips n32 ABI has
exactly the same issue.  The relevant code there carries the following
comment:

  /* Use pointer types for registers if we can.  For n32 we can not,
     since we do not have a 64-bit pointer type.  */

So I'd say that you should probably commit the diff in:

   <http://sourceware.org/ml/gdb-patches/2012-09/msg00714.html>

on the grounds that other 32-bit on 64-bit ABIs also punt on the issue.

But it would be good to try to come up with a way to print 64-bit
registers as pointers for this class of ABIs.  But that should almost
certainly done by fixing target-independent parts of GDB and not by
adding more complexity to the target descriptions like your last
couple of diffs did.



More information about the Gdb-patches mailing list