[Lldb-commits] [lldb] r181566 - Add an explicit check for a darwin kernel KDP_VERSIONSTRING when

Jason Molenda jmolenda at apple.com
Thu May 9 16:52:22 PDT 2013


Author: jmolenda
Date: Thu May  9 18:52:21 2013
New Revision: 181566

URL: http://llvm.org/viewvc/llvm-project?rev=181566&view=rev
Log:
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>

Modified:
    lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
    lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
    lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp

Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp?rev=181566&r1=181565&r2=181566&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp Thu May  9 18:52:21 2013
@@ -544,6 +544,17 @@ CommunicationKDP::RemoteIsEFI ()
         return false;
 }
 
+bool
+CommunicationKDP::RemoteIsDarwinKernel ()
+{
+    if (GetKernelVersion() == NULL)
+        return false;
+    if (m_kernel_version.find("Darwin Kernel") != std::string::npos)
+        return true;
+    else
+        return false;
+}
+
 lldb::addr_t
 CommunicationKDP::GetLoadAddress ()
 {

Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h?rev=181566&r1=181565&r2=181566&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h Thu May  9 18:52:21 2013
@@ -233,6 +233,9 @@ public:
     bool
     RemoteIsEFI ();
 
+    bool
+    RemoteIsDarwinKernel ();
+
     lldb::addr_t
     GetLoadAddress ();
 

Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp?rev=181566&r1=181565&r2=181566&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp Thu May  9 18:52:21 2013
@@ -242,13 +242,13 @@ ProcessKDP::DoConnectRemote (Stream *str
                     {
                         m_dyld_plugin_name = DynamicLoaderStatic::GetPluginNameStatic();
                     }
-                    else 
+                    else if (m_comm.RemoteIsDarwinKernel ())
                     {
+                        m_dyld_plugin_name = DynamicLoaderDarwinKernel::GetPluginNameStatic();
                         if (kernel_load_addr != LLDB_INVALID_ADDRESS)
                         {
                             m_kernel_load_addr = kernel_load_addr;
                         }
-                        m_dyld_plugin_name = DynamicLoaderDarwinKernel::GetPluginNameStatic();
                     }
 
                     // Set the thread ID





More information about the lldb-commits mailing list