forked from Imagelibrary/binutils-gdb
Cleanups and signal handler backtrace fix for GNU/Linux PPC port.
This commit is contained in:
@@ -95,6 +95,8 @@
|
||||
#define PPC_LINUX_PT_FPR31 (PPC_LINUX_PT_FPR0 + 2*31)
|
||||
#define PPC_LINUX_PT_FPSCR (PPC_LINUX_PT_FPR0 + 2*32 + 1)
|
||||
|
||||
int ppc_linux_at_sigtramp_return_path (CORE_ADDR pc);
|
||||
|
||||
/* Determine if pc is in a signal trampoline...
|
||||
|
||||
Ha! That's not what this does at all. wait_for_inferior in infrun.c
|
||||
@@ -312,12 +314,19 @@ ppc_linux_frame_saved_pc (struct frame_info *fi)
|
||||
if (fi->signal_handler_caller)
|
||||
{
|
||||
CORE_ADDR regs_addr =
|
||||
read_memory_integer (fi->frame + PPC_LINUX_REGS_PTR_OFFSET, 4);
|
||||
read_memory_integer (fi->frame + PPC_LINUX_REGS_PTR_OFFSET, 4);
|
||||
/* return the NIP in the regs array */
|
||||
return read_memory_integer (regs_addr + 4 * PPC_LINUX_PT_NIP, 4);
|
||||
}
|
||||
|
||||
return rs6000_frame_saved_pc (fi);
|
||||
else if (fi->next && fi->next->signal_handler_caller)
|
||||
{
|
||||
CORE_ADDR regs_addr =
|
||||
read_memory_integer (fi->next->frame + PPC_LINUX_REGS_PTR_OFFSET, 4);
|
||||
/* return LNK in the regs array */
|
||||
return read_memory_integer (regs_addr + 4 * PPC_LINUX_PT_LNK, 4);
|
||||
}
|
||||
else
|
||||
return rs6000_frame_saved_pc (fi);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user