diff options
author | Greg Clayton <gclayton@apple.com> | 2013-05-10 21:47:16 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2013-05-10 21:47:16 +0000 |
commit | 57abc5d6a6f393f488903c5a35e5a898fc201d3a (patch) | |
tree | 25cef51feff2409f74f0bdb1bd9938c20d138ba5 /lldb/source/Plugins/Process | |
parent | bf0bd1f4ab2b9b4826d58407962260256d4b3709 (diff) | |
download | bcm5719-llvm-57abc5d6a6f393f488903c5a35e5a898fc201d3a.tar.gz bcm5719-llvm-57abc5d6a6f393f488903c5a35e5a898fc201d3a.zip |
<rdar://problem/13854277>
<rdar://problem/13594769>
Main changes in this patch include:
- cleanup plug-in interface and use ConstStrings for plug-in names
- Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp
- Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging
The plug-in interface changes:
Modified the lldb_private::PluginInterface class that all plug-ins inherit from:
Changed:
virtual const char * GetPluginName() = 0;
To:
virtual ConstString GetPluginName() = 0;
Removed:
virtual const char * GetShortPluginName() = 0;
- Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names.
- Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc.
llvm-svn: 181631
Diffstat (limited to 'lldb/source/Plugins/Process')
12 files changed, 36 insertions, 75 deletions
diff --git a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp index 19e332e2a51..ea26d972b86 100644 --- a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp @@ -64,10 +64,11 @@ ProcessFreeBSD::Initialize() } } -const char * +lldb_private::ConstString ProcessFreeBSD::GetPluginNameStatic() { - return "freebsd"; + static ConstString g_name("freebsd"); + return g_name; } const char * @@ -79,16 +80,10 @@ ProcessFreeBSD::GetPluginDescriptionStatic() //------------------------------------------------------------------------------ // ProcessInterface protocol. -const char * +lldb_private::ConstString ProcessFreeBSD::GetPluginName() { - return "process.freebsd"; -} - -const char * -ProcessFreeBSD::GetShortPluginName() -{ - return "process.freebsd"; + return GetPluginNameStatic(); } uint32_t diff --git a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h index 74996f13127..5f79b74cad3 100644 --- a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h +++ b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h @@ -42,7 +42,7 @@ public: static void Terminate(); - static const char * + static lldb_private::ConstString GetPluginNameStatic(); static const char * @@ -60,12 +60,9 @@ public: //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ - virtual const char * + virtual lldb_private::ConstString GetPluginName(); - virtual const char * - GetShortPluginName(); - virtual uint32_t GetPluginVersion(); diff --git a/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp b/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp index 6118a0976f7..5d93502823e 100644 --- a/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp +++ b/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp @@ -81,10 +81,11 @@ void ProcessLinux::Terminate() { } -const char * +lldb_private::ConstString ProcessLinux::GetPluginNameStatic() { - return "linux"; + static ConstString g_name("linux"); + return g_name; } const char * @@ -105,16 +106,10 @@ ProcessLinux::UpdateThreadList(ThreadList &old_thread_list, ThreadList &new_thre //------------------------------------------------------------------------------ // ProcessInterface protocol. -const char * +lldb_private::ConstString ProcessLinux::GetPluginName() { - return "process.linux"; -} - -const char * -ProcessLinux::GetShortPluginName() -{ - return "process.linux"; + return GetPluginNameStatic(); } uint32_t diff --git a/lldb/source/Plugins/Process/Linux/ProcessLinux.h b/lldb/source/Plugins/Process/Linux/ProcessLinux.h index 9acbf49f5f0..e65f1fac8b7 100644 --- a/lldb/source/Plugins/Process/Linux/ProcessLinux.h +++ b/lldb/source/Plugins/Process/Linux/ProcessLinux.h @@ -41,7 +41,7 @@ public: static void Terminate(); - static const char * + static lldb_private::ConstString GetPluginNameStatic(); static const char * @@ -58,12 +58,9 @@ public: //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ - virtual const char * + virtual lldb_private::ConstString GetPluginName(); - virtual const char * - GetShortPluginName(); - virtual uint32_t GetPluginVersion(); diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp index 18007369e83..ef97079dca3 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp @@ -46,10 +46,11 @@ using namespace lldb_private; static const lldb::tid_t g_kernel_tid = 1; -const char * +ConstString ProcessKDP::GetPluginNameStatic() { - return "kdp-remote"; + static ConstString g_name("kdp-remote"); + return g_name; } const char * @@ -141,15 +142,9 @@ ProcessKDP::~ProcessKDP() //---------------------------------------------------------------------- // PluginInterface //---------------------------------------------------------------------- -const char * +lldb_private::ConstString ProcessKDP::GetPluginName() { - return "Process debugging plug-in that uses the Darwin KDP remote protocol"; -} - -const char * -ProcessKDP::GetShortPluginName() -{ return GetPluginNameStatic(); } diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h index 1dff43f1090..0075c7ce188 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h @@ -49,7 +49,7 @@ public: static void Terminate(); - static const char * + static lldb_private::ConstString GetPluginNameStatic(); static const char * @@ -113,12 +113,9 @@ public: //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ - virtual const char * + virtual lldb_private::ConstString GetPluginName(); - virtual const char * - GetShortPluginName(); - virtual uint32_t GetPluginVersion(); diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDPLog.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDPLog.cpp index a9f572c090b..79cb62aa006 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDPLog.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDPLog.cpp @@ -167,7 +167,8 @@ ProcessKDPLog::ListLogCategories (Stream *strm) " thread - log thread events and activities\n" " step - log step related activities\n" " verbose - enable verbose logging\n" - " watch - log watchpoint related activities\n", ProcessKDP::GetPluginNameStatic()); + " watch - log watchpoint related activities\n", + ProcessKDP::GetPluginNameStatic().GetCString()); } diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index 0008dbfa288..3475bab3bca 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -116,10 +116,11 @@ get_random_port () } -const char * +lldb_private::ConstString ProcessGDBRemote::GetPluginNameStatic() { - return "gdb-remote"; + static ConstString g_name("gdb-remote"); + return g_name; } const char * @@ -233,15 +234,9 @@ ProcessGDBRemote::~ProcessGDBRemote() //---------------------------------------------------------------------- // PluginInterface //---------------------------------------------------------------------- -const char * +ConstString ProcessGDBRemote::GetPluginName() { - return "Process debugging plug-in that uses the GDB remote protocol"; -} - -const char * -ProcessGDBRemote::GetShortPluginName() -{ return GetPluginNameStatic(); } @@ -1746,7 +1741,7 @@ ProcessGDBRemote::DoDestroy () // FIXME: These should be ConstStrings so we aren't doing strcmp'ing. if (platform_sp && platform_sp->GetName() - && strcmp (platform_sp->GetName(), PlatformRemoteiOS::GetShortPluginNameStatic()) == 0) + && platform_sp->GetName() == PlatformRemoteiOS::GetPluginNameStatic()) { if (m_destroy_tried_resuming) { diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h index 5cbb13f4914..51924c553af 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h @@ -50,7 +50,7 @@ public: static void Terminate(); - static const char * + static lldb_private::ConstString GetPluginNameStatic(); static const char * @@ -119,12 +119,9 @@ public: //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ - virtual const char * + virtual lldb_private::ConstString GetPluginName(); - virtual const char * - GetShortPluginName(); - virtual uint32_t GetPluginVersion(); diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp index 2bb6826e223..15b861feaa8 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp @@ -178,7 +178,7 @@ ProcessGDBRemoteLog::ListLogCategories (Stream *strm) " thread - log thread events and activities\n" " step - log step related activities\n" " verbose - enable verbose logging\n" - " watch - log watchpoint related activities\n", ProcessGDBRemote::GetPluginNameStatic()); + " watch - log watchpoint related activities\n", ProcessGDBRemote::GetPluginNameStatic().GetCString()); } diff --git a/lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp b/lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp index 0e19ebe7afd..abf3b673e68 100644 --- a/lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp +++ b/lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp @@ -38,10 +38,11 @@ using namespace lldb; using namespace lldb_private; -const char * +ConstString ProcessMachCore::GetPluginNameStatic() { - return "mach-o-core"; + static ConstString g_name("mach-o-core"); + return g_name; } const char * @@ -125,15 +126,9 @@ ProcessMachCore::~ProcessMachCore() //---------------------------------------------------------------------- // PluginInterface //---------------------------------------------------------------------- -const char * +ConstString ProcessMachCore::GetPluginName() { - return "Process debugging plug-in that loads mach-o core files."; -} - -const char * -ProcessMachCore::GetShortPluginName() -{ return GetPluginNameStatic(); } diff --git a/lldb/source/Plugins/Process/mach-core/ProcessMachCore.h b/lldb/source/Plugins/Process/mach-core/ProcessMachCore.h index 246d5722d5a..5048a549f8c 100644 --- a/lldb/source/Plugins/Process/mach-core/ProcessMachCore.h +++ b/lldb/source/Plugins/Process/mach-core/ProcessMachCore.h @@ -39,7 +39,7 @@ public: static void Terminate(); - static const char * + static lldb_private::ConstString GetPluginNameStatic(); static const char * @@ -74,12 +74,9 @@ public: //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ - virtual const char * + virtual lldb_private::ConstString GetPluginName(); - virtual const char * - GetShortPluginName(); - virtual uint32_t GetPluginVersion(); |