This is the mail archive of the 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: Get backtrace at PLT and stepi into PLT

On Thu, Jul 16, 2009 at 06:18:22PM +0800, User Thinker wrote:
> Hi all,
> I have a patch that makes GDB can properly stepi into PLT for ARM Thumb
> instruction.  The patch also allow GDB to perform backtrace at PLT.

What version of GDB are these patches against?  Have you tried the
version from CVS?  This should work perfectly.

> It means GDB should put a invalid instruction of Thumb version at
> base address of the trampoline.  But, it actually puts
> ARM version one.  I have checked GDB source code for this issue.
> GDB check flags in symbol that contain memory space that breakpoint
> was setted at.  If the symbol is flaged as Thumb, it uses
> Thumb version invalid instruction code, or it would use
> ARM version.  It is reasonable.  But, the trampoline in PLT contains
> both types of instructions.  And, the result of checking is
> the block where the trampoline is in is not Thumb.

The CVS version of GDB checks ABI-defined mapping symbols ($a, $t).
These also allow disassembly to work correctly.

> If you try to backtrace stack when GDB stop at PLT, you would
> get nothing.  It is because no any unwinder can handle code in PLT.

arm_stub_unwinder_sniffer is supposed to handle this case.  It's been
there since 2005, and I've used it successfully.  What's going wrong
with that?

> begin 644 arm-plt.diff.gz
> M'XL(`#OJ7DH``YU7;4_;2!#^C'_%E)-Z`3O43D*20JDH$"A5"%62ZGKWQ?++

Please include patches as text.  See the list archives for examples.

Daniel Jacobowitz

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