6c32437e2255db9089ee00cd70b474676d09ab6e |
|
10-May-2013 |
Jason Molenda <jmolenda@apple.com> |
Add an explicit check for a darwin kernel KDP_VERSIONSTRING when starting a kdp communication session, instead of assuming darwin kernel for any "non-EFI" kdp session. <rdar://problem/13854098> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
cc2cffeda2a1a2c56d33459d6c36be08032b8613 |
|
01-Mar-2013 |
Jason Molenda <jmolenda@apple.com> |
Patch from Andrew Fish to add recognition of some additional KDP packets. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
d2f3b42f70f309f548c2b618c5991a905a00ec3a |
|
14-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13064893> Poor network connections aren't handled well; commands fail instead of retrying. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
d06bb5007b310b5498f7c47006022561ce1ceb4d |
|
25-Oct-2012 |
Jason Molenda <jmolenda@apple.com> |
Identify a kdp session that is connecting to an EFI monitor, use a DynamicLoaderStatic dynamic loader for the session instead of a kernel or user dynamic loader. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
307c7fdc58d19f734991a176db972cc61d9ada16 |
|
20-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12491387> Added commands to the KDP plug-in that allow sending raw commands through the KDP protocol. You specify a command byte and a payload as ASCII hex bytes, and the packet is created with a valid header/sequenceID/length and sent. The command responds with a raw ASCII hex string that contains all bytes in the reply including the header. An example of sending a read register packet for the GPR on x86_64: (lldb) process plugin packet send --command 0x07 --payload 0100000004000000 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
fac2e62f08719ba800a440b7ad0d5a55a26dc620 |
|
29-Sep-2012 |
Jason Molenda <jmolenda@apple.com> |
Add support for debugging KASLR kernels via kdp (the kernel being loaded at a random offset). To get the kernel's UUID and load address I need to send a kdp packet so I had to implement the kernel relocation (and attempt to find the kernel if none was provided to lldb already) in ProcessKDP -- but this code really properly belongs in DynamicLoaderDarwinKernel. I also had to add an optional Stream to ConnectRemote so ProcessKDP::DoConnectRemote can print feedback about the remote kernel's UUID, load address, and notify the user if we auto-loaded the kernel via the UUID. <rdar://problem/7714201> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
3acaa926c8f0d32da48db61a5fcb95276e6a4006 |
|
25-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/9959501> More KDP debugging process. We can not set breakpoints, hit them, resume, step and detach while running. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
ea63601b1d4a21e46e477563f27d1b1c516136d8 |
|
21-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/9959501> KDP -- now with rudimentary process control (continue only) and read + write registers (which means we can see stack frames) for x86_64, i386 and ARM. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
516f0849819d094d4eab39a1f27b770259103ff8 |
|
11-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
No functionality changes, mostly cleanup. Cleaned up the Mutex::Locker and the ReadWriteLock classes a bit. Also cleaned up the GDBRemoteCommunication class to not have so many packet functions. Used the "NoLock" versions of send/receive packet functions when possible for a bit of performance. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
ae932359b80098532f3c3766fa9e6527352fbb67 |
|
10-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Trying to solve our disappearing thread issues by making thread list updates safer. The current ProcessGDBRemote function that updates the threads could end up with an empty list if any other thread had the sequence mutex. We now don't clear the thread list when we can't access it, and we also have changed how lldb_private::Process handles the return code from the: virtual bool Process::UpdateThreadList (lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list) = 0; A bool is now returned to indicate if the list was actually updated or not and the lldb_private::Process class will only update the stop ID of the validity of the thread list if "true" is returned. The ProcessGDBRemote also got an extra assertion that will hopefully assert when running debug builds so we can find the source of this issue. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
d3a86a2bad17204570577dbafc51f3b107310de8 |
|
19-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Third round of code cleanups: - reorganizing the PTS (Partial Template Specializations) in FormatManager.h - applied a patch by Filipe Cabecinhas to make LLDB compile with GCC Functional changes: - fixed an issue where command type summary add for type "struct Foo" would not match any types. currently, "struct" will be stripped off and type "Foo" will be matched. similar behavior occurs for class, enum and union specifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
7b13922c3c6b55225fa8403762c0399e9692b730 |
|
21-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
More KDP fixes and logging cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
234981a4559db084f9c90612660e40f19915b89c |
|
20-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Added KDP resume, suspend, set/remove breakpoint, and kernel version support. Also we now display a live update of the kexts that we are loading. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
ec15f50fdd7011fc155ab4fe71d4887ffe31df4e |
|
20-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Added register reading support for ARM, i386 and x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
0fa512447e00da09d300fbabd18b5ce94f52fdaa |
|
19-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Modified the LocateMacOSXFilesUsingDebugSymbols(...) function to locate an executable file if it is right next to a dSYM file that is found using DebugSymbols. The code also looks into a bundle if the dSYM file is right next to a bundle. Modified the MacOSX kernel dynamic loader plug-in to correctly set the load address for kext sections. This is a tad tricky because of how LLDB chooses to treat mach-o segments with no name. Also modified the loader to properly handle the older version 1 kext summary info. Fixed a crasher in the Mach-o object file parser when it is trying to set the section size correctly for dSYM sections. Added packet dumpers to the CommunicationKDP class. We now also properly detect address byte sizes based on the cpu type and subtype that is provided. Added a read memory and read register support to CommunicationKDP. Added a ThreadKDP class that now uses subclasses of the RegisterContextDarwin_XXX for arm, i386 and x86_64. Fixed some register numbering issues in the RegisterContextDarwin_arm class and added ARM GDB numbers to the ARM_GCC_Registers.h file. Change the RegisterContextMach_XXX classes over to subclassing their RegisterContextDarwin_XXX counterparts so we can share the mach register contexts between the user and kernel plug-ins. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
8d2ea2888a4acb7f140f9af64ddd2b16b2dee870 |
|
17-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Added a boolean to the pure virtual lldb_private::Process::CanDebug(...) method so process plug-ins that are requested by name can answer yes when asked if they can debug a target that might not have any file in the target. Modified the ConnectionFileDescriptor to have both a read and a write file descriptor. This allows us to support UDP, and eventually will allow us to support pipes. The ConnectionFileDescriptor class also has a file descriptor type for each of the read and write file decriptors so we can use the correct read/recv/recvfrom call when reading, or write/send/sendto for writing. Finished up an initial implementation of UDP where you can use the "udp://" URL to specify a host and port to connect to: (lldb) process connect --plugin kdp-remote udp://host:41139 This will cause a ConnectionFileDescriptor to be created that can send UDP packets to "host:41139", and it will also bind to a localhost port that can be given out to receive the connectionless UDP reply. Added the ability to get to the IPv4/IPv6 socket port number from a ConnectionFileDescriptor instance if either file descriptor is a socket. The ProcessKDP can now successfully connect to a remote kernel and detach using the above "processs connect" command!!! So far we have the following packets working: KDP_CONNECT KDP_DISCONNECT KDP_HOSTINFO KDP_VERSION KDP_REATTACH Now that the packets are working, adding new packets will go very quickly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
d52d00f4edb746ba458a3e659699160952dc925e |
|
16-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Completed more work on the KDP darwin kernel debugging Process plug-in. Implemented connect, disconnect, reattach, version, and hostinfo. Modified the ConnectionFileDescriptor class to be able to handle UDP. Added a new Stream subclass called StreamBuffer that is backed by a llvm::SmallVector for better efficiency. Modified the DataExtractor class to have a static function that can dump hex bytes into a stream. This is currently being used to dump incoming binary packet data in the KDP plug-in. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
269f91e066c5991a4d4aa2945ea2c285f8589b12 |
|
15-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the comment lines in the file comment headers. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
1e5b02176d6952d0679479926fa557534313472b |
|
15-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to connect using "tcp://<host>:<port>" which is the same as the old "connect://<host>:<port>". Also added the ability to connect using "udp://<host>:<port>" which will open a connected datagram socket. I need to find a way to specify a non connected datagram socket as well. We might need to start setting some settings in the URL itself, maybe something like: udp://<host>:<port>?connected=yes udp://<host>:<port>?connected=no I am open to suggestions for URL settings. Also did more work on the KDP darwin kernel plug-in. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|
363be3fc515bea8baf2c5031f3c62f6326d9e1b8 |
|
15-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Hollowed out process plug-in to do KDP darwin kernel debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
|