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] gdbserver: ARM: add support for uclinux


On 04/13/2012 04:59 PM, Will Deacon wrote:

> On Fri, Apr 13, 2012 at 03:57:41PM +0100, Pedro Alves wrote:
>> On 04/13/2012 10:07 AM, Will Deacon wrote:
>>
>>> When debugging a uclinux target, it is necessary to retrieve the text
>>> and data offsets of the running program in order for symbol resolution
>>> to work correctly.
>>>
>>> This patch defines PT_{TEXT,DATA,TEXT_END}_ADDR for ARM, which can be
>>> issued as `magic' addresses to the PTRACE_PEEKUSER request in order to
>>> retrieve the child offsets.
>>
>>
>> Is this for older kernels?  I see these defined in
>> arch/arm/include/asm/ptrace.h in current mainline.
> 
> Actually, it's for bleeding-edge kernels (3.4-rc2) since the ptrace request
> has been broken until recently (it would return -EIO).
> 
> Although the #defines are exported in the kernel headers, they don't seem to
> be picked up by sys/ptrace.h, which is why I followed the same path as the
> other architectures here. An alternative would be to include asm/ptrace.h
> directly and introduce guards for the other architectures to avoid duplicate
> #defines...


I think that'd be good.  We already include asm/ptrace.h in many of the linux
native files:

$ grep asm/ptrace * -rn | grep -v ChangeLog

amd64-linux-nat.c:39:   <asm/ptrace.h> because the latter redefines FS and GS for no apparent
amd64-linux-nat.c:45:#include <asm/ptrace.h>
gdbserver/linux-ppc-low.c:25:#include <asm/ptrace.h>
gdbserver/linux-ia64-low.c:32:#include <asm/ptrace_offsets.h>
gdbserver/linux-mips-low.c:53:#include <asm/ptrace.h>
gdbserver/linux-tic6x-low.c:37:#include <asm/ptrace.h>
gdbserver/linux-m68k-low.c:157:#include <asm/ptrace.h>
gdbserver/linux-bfin-low.c:25:#include <asm/ptrace.h>
gdbserver/linux-sh-low.c:30:#include <asm/ptrace.h>
gdbserver/linux-s390-low.c:26:#include <asm/ptrace.h>
hppa-linux-nat.c:32:#include <asm/ptrace.h>
ia64-linux-nat.c:39:#include <asm/ptrace_offsets.h>
mips-linux-nat.c:66:   These ``addresses'' are normally defined in <asm/ptrace.h>.
ppc-linux-nat.c:80:   ppc kernel's asm/ptrace.h defines PTRACE_GETVRREGS and
s390-nat.c:34:#include <asm/ptrace.h>
spu-linux-nat.c:33:#include <asm/ptrace.h>

So it probably doesn't hurt to include it in linux-low.c.  Want to give it a try?

-- 
Pedro Alves


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