diff options
author | Jason Molenda <jmolenda@apple.com> | 2013-05-09 23:52:21 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2013-05-09 23:52:21 +0000 |
commit | ca2ffa7e65621f247fd1ad9d7a012b270bbd007c (patch) | |
tree | 8bc752c38a2930175f6ba99a4c4f065d3b20ce59 /lldb/source/Plugins | |
parent | 139474d49866a49fa1567025869e914322ff6032 (diff) | |
download | bcm5719-llvm-ca2ffa7e65621f247fd1ad9d7a012b270bbd007c.tar.gz bcm5719-llvm-ca2ffa7e65621f247fd1ad9d7a012b270bbd007c.zip |
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>
llvm-svn: 181566
Diffstat (limited to 'lldb/source/Plugins')
3 files changed, 16 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp index bbde8ed0709..8340990db02 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp @@ -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 () { diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h index 6b61f4422dd..f53b190522f 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h @@ -233,6 +233,9 @@ public: bool RemoteIsEFI (); + bool + RemoteIsDarwinKernel (); + lldb::addr_t GetLoadAddress (); diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp index c78aa42da20..18007369e83 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp @@ -242,13 +242,13 @@ ProcessKDP::DoConnectRemote (Stream *strm, const char *remote_url) { 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 |