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: [7.5] PATCH: PR backtrace/14646 [x32] backtrace doesn't work


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


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