From 3a29bdbe9b4217e47e0689a4c310ab198a4b71d5 Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Sun, 17 Jul 2011 20:36:25 +0000 Subject: 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. llvm-svn: 135363 --- lldb/source/Core/DataExtractor.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lldb/source/Core/DataExtractor.cpp') diff --git a/lldb/source/Core/DataExtractor.cpp b/lldb/source/Core/DataExtractor.cpp index 9518b44cffb..e364dfd6097 100644 --- a/lldb/source/Core/DataExtractor.cpp +++ b/lldb/source/Core/DataExtractor.cpp @@ -1793,6 +1793,7 @@ void DataExtractor::DumpHexBytes (Stream *s, const void *src, size_t src_len, + uint32_t bytes_per_line, addr_t base_addr) { DataExtractor data (src, src_len, eByteOrderLittle, 4); @@ -1801,7 +1802,7 @@ DataExtractor::DumpHexBytes (Stream *s, eFormatBytes, // Dump as hex bytes 1, // Size of each item is 1 for single bytes src_len, // Number of bytes - 32, // Num bytes per line + bytes_per_line, // Num bytes per line base_addr, // Base address 0, 0); // Bitfield info } -- cgit v1.2.3