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]

sparc gdbserver bug? (Re: [RFA] handle android bionic ptrace in gdbserver.)


On 03/28/2012 01:26 AM, Thiago Jung Bauermann wrote:

>  #ifndef __sparc__
> -      res = ptrace (regset->get_request, pid, nt_type, data);
> +      res = ptrace (regset->get_request, pid,
> +		    (PTRACE_ARG3_TYPE) nt_type, data);
>  #else
>        res = ptrace (regset->get_request, pid, &iov, data);
>  #endif


BTW, I notice the __sparc__ branch here appears to be broken?
(sparc has the last two ptrace arguments reversed...).

 $ git show d0aa472c
 commit d0aa472c6770baccb29dc37d0e64a81afda99911
 Author: H.J. Lu <hjl.tools@gmail.com>
 Date:   Wed Apr 7 18:49:43 2010 +0000

     Add x86 AVX support to gdbserver.
 ...

 +
 +      nt_type = regset->nt_type;
 +      if (nt_type)
 +       {
 +         iov.iov_base = buf;
 +         iov.iov_len = regset->size;
 +         data = (void *) &iov;
 +       }
 +      else
 +       data = buf;
 +
  #ifndef __sparc__
 -      res = ptrace (regset->get_request, pid, 0, buf);
 +      res = ptrace (regset->get_request, pid, nt_type, data);
  #else
 -      res = ptrace (regset->get_request, pid, buf, 0);
 +      res = ptrace (regset->get_request, pid, &iov, data);
  #endif

I think that should have ended up with:

  #ifndef __sparc__
       res = ptrace (regset->get_request, pid, nt_type, data);
  #else
       res = ptrace (regset->get_request, pid, data, nt_type);
  #endif

?

-- 
Pedro Alves


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