This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [7.5] PATCH: PR backtrace/14646 [x32] backtrace doesn't work
- From: Pedro Alves <palves at redhat dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, GDB <gdb-patches at sourceware dot org>
- Date: Fri, 09 Nov 2012 00:15:41 +0000
- Subject: Re: [7.5] PATCH: PR backtrace/14646 [x32] backtrace doesn't work
- References: <20121020234741.GA3626@gmail.com> <20121021015636.GD3050@adacore.com>
On 10/21/2012 02:56 AM, Joel Brobecker wrote:
>> This patch backports the fix from trunk to 7.5 branch. Tested on
>> Linux/x86-64 and Linux/x32. OK to install?
> [...]
>> PR backtrace/14646
>> PR gdb/14647
>> * i386-tdep.h (gdbarch_tdep): Remove sp_regnum_from_eax and
>> pc_regnum_from_eax.
>> * i386-tdep.c (i386_gdbarch_init): Don't use sp_regnum_from_eax
>> nor pc_regnum_from_eax.
>> * amd64-tdep.c (amd64_x32_init_abi): Don't set sp_regnum_from_eax
>> nor pc_regnum_from_eax.
>
> I'm sorry to say that I am not comfortable at all with this going
> in the 7.5 branch. If Mark is super confident, then OK, but this is
> touching sp/pc handling for all x86 and x86-64 targets. And I don't
> think that the issue this patch is fixing is that critical.
I'm not Mark, but it looks safe on all x86 and x86-64 targets to me.
Note how tdep->sp_regnum_from_eax and tdep->sp_regnum_from_eax are -1
by default, and only x32 sets it to something else. Then, the only use
for those fields:
- if (tdep->sp_regnum_from_eax != -1)
- set_gdbarch_sp_regnum (gdbarch,
- (tdep->eax_regnum
- + tdep->sp_regnum_from_eax));
- if (tdep->pc_regnum_from_eax != -1)
- set_gdbarch_pc_regnum (gdbarch,
- (tdep->eax_regnum
- + tdep->pc_regnum_from_eax));
only had effect on x32.
--
Pedro Alves