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
diff --git a/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h b/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
index 8c5b6d5..e4e92c8 100644
--- a/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
+++ b/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
@@ -65,6 +65,11 @@
eCommandTypeKernelVersion
} CommandType;
+ enum
+ {
+ eFeatureLocalBreakpointsSupported = (1u << 0),
+ };
+
typedef enum
{
KDP_PROTERR_SUCCESS = 0,
@@ -173,12 +178,21 @@
uint32_t dst_size,
lldb_private::Error &error);
+ const char *
+ GetKernelVersion ();
+
uint32_t
GetVersion ();
uint32_t
GetFeatureFlags ();
+ bool
+ LocalBreakpointsAreSupported ()
+ {
+ return (GetFeatureFlags() & eFeatureLocalBreakpointsSupported) != 0;
+ }
+
uint32_t
GetCPUMask ();
@@ -188,6 +202,16 @@
uint32_t
GetCPUSubtype ();
+ // If cpu_mask is zero, then we will resume all CPUs
+ bool
+ SendRequestResume (uint32_t cpu_mask = 0);
+
+ bool
+ SendRequestSuspend ();
+
+ bool
+ SendRequestBreakpoint (bool set, lldb::addr_t addr);
+
protected:
typedef std::list<std::string> packet_collection;
@@ -216,6 +240,8 @@
bool
SendRequestHostInfo ();
+ bool
+ SendRequestKernelVersion ();
void
DumpPacket (lldb_private::Stream &s,
@@ -280,6 +306,8 @@
uint32_t m_kdp_hostinfo_cpu_mask;
uint32_t m_kdp_hostinfo_cpu_type;
uint32_t m_kdp_hostinfo_cpu_subtype;
+ std::string m_kernel_version;
+ lldb::addr_t m_last_read_memory_addr; // Last memory read address for logging
private:
//------------------------------------------------------------------
// For CommunicationKDP only