diff options
author | Jason Molenda <jmolenda@apple.com> | 2012-12-19 02:54:03 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2012-12-19 02:54:03 +0000 |
commit | f17b5ac6e1239a5ff8c46c0351ba140b35f7a6ab (patch) | |
tree | b88ee14026d17dae8cc22635ac01bb24e808eede /lldb/docs | |
parent | 503053a737bf1c54899bcc2d1b4c514485e30054 (diff) | |
download | bcm5719-llvm-f17b5ac6e1239a5ff8c46c0351ba140b35f7a6ab.tar.gz bcm5719-llvm-f17b5ac6e1239a5ff8c46c0351ba140b35f7a6ab.zip |
<rdar://problem/11961650>
Update the debugserver "qProcessInfo" implementation to return the
cpu type, cpu subtype, OS and vendor information just like qHostInfo
does so lldb can create an ArchSpec based on the returned values.
Add a new GetProcessArchitecture to GDBRemoteCommunicationClient akin
to GetHostArchitecture. If the qProcessInfo packet is supported,
GetProcessArchitecture will return the cpu type / subtype of the
process -- e.g. a 32-bit user process running on a 64-bit x86_64 Mac
system.
Have ProcessGDBRemote set the Target's architecture based on the
GetProcessArchitecture when we've completed an attach/launch/connect.
llvm-svn: 170491
Diffstat (limited to 'lldb/docs')
-rw-r--r-- | lldb/docs/lldb-gdb-remote.txt | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lldb/docs/lldb-gdb-remote.txt b/lldb/docs/lldb-gdb-remote.txt index 594e3fc3a86..e80af4f66e4 100644 --- a/lldb/docs/lldb-gdb-remote.txt +++ b/lldb/docs/lldb-gdb-remote.txt @@ -407,14 +407,23 @@ ptrsize: is a number that represents how big pointers are in bytes on the debug // Medium. On systems which can launch multiple different architecture processes, // the qHostInfo may not disambiguate sufficiently to know what kind of // process is being debugged. -// e.g. on a 64-bit x86 Mc system both 32-bit and 64-bit user processes are possible, +// e.g. on a 64-bit x86 Mac system both 32-bit and 64-bit user processes are possible, // and with Mach-O univeral files, the executable file may contain both 32- and // 64-bit slices so it may be impossible to know until you're attached to a real // process to know what you're working with. +// +// All numeric fields return base-16 numbers without any "0x" prefix. //---------------------------------------------------------------------- +An i386 process: + +send packet: $qProcessInfo#00 +read packet: $pid:42a8;parent-pid:42bf;real-uid:ecf;real-gid:b;effective-uid:ecf;effective-gid:b;cputype:7;cpusubtype:3;ostype:macosx;vendor:apple;endian:little;ptrsize:4;#00 + +An x86_64 process: + send packet: $qProcessInfo#00 -$pid:0x9517;parent-pid:0x9519;real-uid:0xecf;real-gid:0xb;effective-uid:0xecf;effective-gid:0xb;cputype:0x7;ptrsize:0x4;#00 +read packet: $pid:d22c;parent-pid:d34d;real-uid:ecf;real-gid:b;effective-uid:ecf;effective-gid:b;cputype:1000007;cpusubtype:3;ostype:macosx;vendor:apple;endian:little;ptrsize:8;#00 Key value pairs include: @@ -425,6 +434,10 @@ real-gid: the real group id of the process effective-uid: the effective user id of the process effective-gid: the effective group id of the process cputype: the Mach-O CPU type of the process +cpusubtype: the Mach-O CPU subtype of the process +ostype: is a string the represents the OS being debugged (darwin, lunix, freebsd) +vendor: is a string that represents the vendor (apple) +endian: is one of "little", "big", or "pdp" ptrsize: is a number that represents how big pointers are in bytes |