labath abandoned this revision. ================ Comment at: source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp:53 @@ -22,2 +52,3 @@ + NativeRegisterContextLinux::NativeRegisterContextLinux(NativeThreadProtocol &native_thread, uint32_t concrete_frame_idx, ---------------- nitesh.jain wrote: > labath wrote: > > jaydeep wrote: > > > We have tried executing ptrace(NT_PRSTATUS) on MIPS with 3.18. It is able > > > to detect the arch correctly (64->64 and 64->32). However with 3.10 it > > > fails with EIO. Is there any fallback method when ptrace(NT_PRSTATUS) > > > fails? > > Thanks for checking that out. > > > > This makes things a bit tricky. We *could* fallback to the "parse the > > executable ELF" method of getting the architecture, but that would make > > this patch a bit pointless, as that is what I am trying to remove in the > > first place. I suppose we could make the fallback mips-only, but that will > > not be too ideal either. > > > > I don't know about any other fallbacks. It would be interesting to know how > > strace does that. I've tried looking at strace source code, but I could not > > make much out of it. Do you know if a single strace binary is capable of > > correctly tracing both 32- and 64-bit processes? If so, could you try > > running the following experiment for me: > > - create a simple c file that does a sleep(1) and exits > > - compile 32- and 64-bit versions of the executable > > - execute the following commands: > > ``` > > strace -o /tmp/32.txt -- strace -o /dev/null -- a.out.32 > > strace -o /tmp/64.txt -- strace -o /dev/null -- a.out.64 > > ``` > > > > Could you send me the outputs (32.txt, 64.txt). Maybe I'll be able to > > figure something out from that. > > > > If that does not work, I may have to abandon this. > > > > thanks. > // 32 bit ELF > gcc-4.9 -g -O0 -mabi=64 -mips64r2 simple.c -o a.out.64 > > // 64 bit ELF > gcc-4.9 -g -O0 -mabi=32 -mips32r2 simple.c -o a.out.32 > > // Strace for 32 and 64 bit > strace -o /tmp/64.txt -- strace -o /dev/null -- ./a.out.64 > strace -o /tmp/32.txt -- strace -o /dev/null -- ./a.out.32 > > > // File command output for both file > > a.out.64: ELF 64-bit LSB executable, MIPS, MIPS64 rel2 version 1 (SYSV), > dynamically linked, interpreter /lib64/ld.so.1, > BuildID[sha1]=6e0f92a8abee292b4b6462d79ec0420a3d8aaad0, for GNU/Linux 2.6.32, > not stripped > > a.out.32: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1, dynamically > linked, interpreter /lib/ld.so.1, for GNU/Linux 2.6.32, > BuildID[sha1]=c4e09148526975f777e3e70bec85868616d3ce94, not stripped > > > {F1978053} > > {F1978054} Thank you for helping me investigate this. I've been thinking about it a lot, and I don't see any other way to get around this limitation at the moment. I think we'll have to abandon this approach for now.
http://reviews.llvm.org/D20368 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits