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 v7 3/8] Use xml-syscall to compare syscall numbers in arm_linux_sigreturn_return-addr.




On 12/11/2015 07:47 AM, Pedro Alves wrote:
On 12/11/2015 12:31 PM, Antoine Tremblay wrote:


On 12/11/2015 07:05 AM, Pedro Alves wrote:
On 12/11/2015 12:02 PM, Yao Qi wrote:
On 11/12/15 11:59, Pedro Alves wrote:
but then you might as well just do:

    #define ARM_SIGRETURN 119

How about using __NR_sigreturn and __NR_rt_sigreturn directly? like
what patch #6 does.

Those are host/native macros.  Only make sense for the running host.
Can't use that in a tdep file, like arm-linux-tdep.c.  Otherwise, e.g.,
a x86-hosted cross debugger would be using the x86 __NR_sigreturn, etc.


Exactly that's why I use those only in GDBServer.

Hmm, actually, that sounds wrong.

What about Aarch64 gdbserver debugging Aarch32?

I see that the new code in question in patch #6 is in gdbserver/linux-arm-low.c,
which is not built on Aarch64, but, shouldn't that new arm_sigreturn_next_pc
code be used in the biarch scenario as well?


This is only used if we need software single stepping, I think in that case hardware single stepping will be used on aarch64 even if stepping over an arm32 program, Yao can confirm ?


If you just made that 32-bit-specific code compile on Aarch64 it would
be compiling against Aarch64's __NR_sigreturn, which I'd assume is wrong for Aarch32.



Looking at the kernel code in linux/arch/arm64 I see :

include/asm/unistd.h:#define __NR_compat_sigreturn		119
include/asm/unistd.h:#define __NR_compat_rt_sigreturn	173

include/asm/unistd32.h:#define __NR_sigreturn 119
include/asm/unistd32.h:__SYSCALL(__NR_sigreturn, compat_sys_sigreturn_wrapper)

include/asm/unistd32.h:#define __NR_rt_sigreturn 173
include/asm/unistd32.h:__SYSCALL(__NR_rt_sigreturn, compat_sys_rt_sigreturn_wrapper)

So I think it's ok... but I can't compile on aarch64 at the moment.

Personally while I like the #define ARM_SIGRETURN 119 better, I think
the xml function is fine.


If you added

#define ARM_LINUX_SIGRETURN 119

to arch/arm-linux.h

you could use it in both places.

That was my first thought, I would be OK with that if Yao is too, however I think both methods work.


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