14132e8924
* infrun.c (handle_inferior_event): Move the check for return trampolines ahead of the check for function trampolines. * mips-tdep.h (MIPS_S2_REGNUM, MIPS_GP_REGNUM): New macros. * mips-tdep.c (mips_str_mips16_call_stub): New variable. (mips_str_mips16_ret_stub): Likewise. (mips_str_call_fp_stub): Likewise. (mips_str_call_stub): Likewise. (mips_str_fn_stub): Likewise. (mips_str_pic): Likewise. (mips_in_frame_stub): New function. (mips_unwind_pc): Return the return address rather than the PC if the PC of an intermediate frame is inside a call thunk. (mips_is_stub_suffix): New function. (mips_is_stub_mode): Likewise. (mips_get_mips16_fn_stub_pc): Likewise. (mips_skip_mips16_trampoline_code): Update to handle all the currently generated stub types. Don't recurse into __fn_stub thunks. Remove heuristics to handle stubs beyond etext/_etext. Use cooked register accesses. (mips_in_return_stub): Reintroduce function. (mips_skip_trampoline_code): Traverse trampolines recursively. (mips_gdbarch_init): Handle MIPS16 return trampolines. gdb/testsuite/ * gdb.arch/mips16-thunks-inmain.c: New file. * gdb.arch/mips16-thunks-main.c: New file. * gdb.arch/mips16-thunks-sin.c: New file. * gdb.arch/mips16-thunks-sinfrob.c: New file. * gdb.arch/mips16-thunks-sinfrob16.c: New file. * gdb.arch/mips16-thunks-sinmain.c: New file. * gdb.arch/mips16-thunks-sinmips16.c: New file. * gdb.arch/mips16-thunks.exp: New file. |
||
---|---|---|
.. | ||
alpha-step.c | ||
alpha-step.exp | ||
altivec-abi.c | ||
altivec-abi.exp | ||
altivec-regs.c | ||
altivec-regs.exp | ||
amd64-byte.exp | ||
amd64-disp-step.exp | ||
amd64-disp-step.S | ||
amd64-dword.exp | ||
amd64-entry-value.cc | ||
amd64-entry-value.exp | ||
amd64-entry-value.s | ||
amd64-i386-address.exp | ||
amd64-i386-address.S | ||
amd64-prologue-xmm.c | ||
amd64-prologue-xmm.exp | ||
amd64-prologue-xmm.s | ||
amd64-pseudo.c | ||
amd64-word.exp | ||
arm-disp-step.exp | ||
arm-disp-step.S | ||
e500-abi.c | ||
e500-abi.exp | ||
e500-prologue.c | ||
e500-prologue.exp | ||
e500-regs.c | ||
e500-regs.exp | ||
gcore.c | ||
gdb1291.exp | ||
gdb1291.s | ||
gdb1431.exp | ||
gdb1431.s | ||
gdb1558.c | ||
gdb1558.exp | ||
i386-avx.c | ||
i386-avx.exp | ||
i386-bp_permanent.exp | ||
i386-byte.exp | ||
i386-cpuid.h | ||
i386-disp-step.exp | ||
i386-disp-step.S | ||
i386-dr3-watch.c | ||
i386-dr3-watch.exp | ||
i386-gnu-cfi-asm.S | ||
i386-gnu-cfi.c | ||
i386-gnu-cfi.exp | ||
i386-permbkpt.exp | ||
i386-permbkpt.S | ||
i386-prologue.c | ||
i386-prologue.exp | ||
i386-pseudo.c | ||
i386-signal.c | ||
i386-signal.exp | ||
i386-size-overlap.c | ||
i386-size-overlap.exp | ||
i386-size.c | ||
i386-size.exp | ||
i386-sse.c | ||
i386-sse.exp | ||
i386-unwind.c | ||
i386-unwind.exp | ||
i386-word.exp | ||
ia64-breakpoint-shadow.exp | ||
ia64-breakpoint-shadow.S | ||
iwmmxt-regs.c | ||
iwmmxt-regs.exp | ||
Makefile.in | ||
mips16-thunks-inmain.c | ||
mips16-thunks-main.c | ||
mips16-thunks-sin.c | ||
mips16-thunks-sinfrob.c | ||
mips16-thunks-sinfrob16.c | ||
mips16-thunks-sinmain.c | ||
mips16-thunks-sinmips16.c | ||
mips16-thunks.exp | ||
pa-nullify.exp | ||
pa-nullify.s | ||
pa64-nullify.s | ||
powerpc-aix-prologue.c | ||
powerpc-aix-prologue.exp | ||
powerpc-d128-regs.c | ||
powerpc-d128-regs.exp | ||
powerpc-prologue.c | ||
powerpc-prologue.exp | ||
ppc-dfp.c | ||
ppc-dfp.exp | ||
ppc-fp.c | ||
ppc-fp.exp | ||
ppc64-atomic-inst.c | ||
ppc64-atomic-inst.exp | ||
spu-info.c | ||
spu-info.exp | ||
spu-ls.c | ||
spu-ls.exp | ||
system-gcore.exp | ||
thumb-prologue.c | ||
thumb-prologue.exp | ||
thumb-singlestep.exp | ||
thumb-singlestep.S | ||
thumb2-it.exp | ||
thumb2-it.S | ||
vsx-regs.c | ||
vsx-regs.exp |