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: [PATCH] PowerPC 32 with Secure PLT


On 01/24/2012 04:37 PM, Ryan Arnold wrote:
On Tue, 2012-01-24 at 15:49 -0800, Michael Eager wrote:
On 01/17/2012 07:04 PM, Michael Eager wrote:
This patch adds support for stepping into/over the PLT stubs generated
for secure PLT on PowerPC 32. It requires a recent binutils which
generates symbols for the stubs.

This has been tested on PowerPC 32-bit systems with and without PAX.

2012-01-17 Michael Eager<eager@eagercon.com>

* configure.tgt (powerpc-*-linux*): Add glibc-tdep.o.
* ppc-linux-tdep.c: Include glibc-tdep.h.
(powerpc32_plt_stub, powerpc32_plt_stub_so): Add PLT stub templates.
(powerpc_linux_in_plt_stub): New function.
(powerpc_linux_in_dynsym_resolve_code): New function.
(ppc_skip_trampoline_code): New function.
(ppc_linux_init_abi): Use PPC specific functions rather than generic.
Use glibc_skip_solib_resolver.

Will check in in a couple days, unless I hear additional comments.

I'm not familiar with the GDB code at all so I couldn't tell from the patch whether it addresses my concern.

Prior to resolving the PLT entries will this trap in the loader's
resolver code or does it 'continue' until the PLT entry is populated and
the target symbol address has been branched to?

It works in two phases: first steps over the stub to where ever it points (which may be the target function), then it skips over the resolver code if it still hasn't reached the function.

It's fine with me if it skips the PLT stubs and the resolver trampoline
code but being able to step into the resolver code is still useful to me
as a GLIBC developer.

Most users don't want to see gdb stepping through symbol resolution on the way to their library function.

I didn't run tests with a glibc which had debug symbols, but I think
that it will skip over the resolver if you say step.  If you want to
stop at _dl_resolve, you will need to put a breakpoint at that location.

Naturally, if you do stepi, you see each instruction executed.

--
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


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