llvm-project/lldb/source/Plugins/Process/Linux
Greg Clayton 542e407581 Patch from Andrew Kaylor for linux:
The attached patch adds support for debugging 32-bit processes when running a 64-bit lldb on an x86_64 Linux system.
 
Making this work required two basic changes:
 
1)      Getting lldb to report that it could debug 32-bit processes
2)      Changing an assumption about how ptrace works when debugging cross-platform
 
For the first change, I took a conservative approach and only enabled this for x86_64 Linux platforms.  It may be that the change I made in Host.cpp could be extended to other 64-bit Linux platforms, but I'm not familiar enough with the other platforms to know for sure.
 
For the second change, the Linux ProcessMonitor class was assuming that ptrace(PTRACE_[PEEK|POKE]DATA...) would read/write a "word" based on the child process word size.  However, the ptrace documentation says that the "word" size read or written is "determined by the OS variant."  I verified experimentally that when ptracing a 32-bit child from a 64-bit parent a 64-bit word is read or written.

llvm-svn: 163398
2012-09-07 17:49:29 +00:00
..
LinuxSignals.cpp linux: initial support for 'real' signal handling 2011-03-30 15:55:52 +00:00
LinuxSignals.h linux: initial support for 'real' signal handling 2011-03-30 15:55:52 +00:00
Makefile This patch combines common code from Linux and FreeBSD into 2012-01-05 19:17:38 +00:00
ProcessLinux.cpp Remove the GetSequenceMutex timeout that isn't being used in the GDB remote plug-in. 2012-04-12 19:04:34 +00:00
ProcessLinux.h Remove the GetSequenceMutex timeout that isn't being used in the GDB remote plug-in. 2012-04-12 19:04:34 +00:00
ProcessMonitor.cpp Patch from Andrew Kaylor for linux: 2012-09-07 17:49:29 +00:00
ProcessMonitor.h This patch combines common code from Linux and FreeBSD into 2012-01-05 19:17:38 +00:00
RegisterContextLinux_x86_64.h Fix indentation. 2012-01-05 23:51:37 +00:00