summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/include/lldb/Core/Debugger.h2
-rw-r--r--lldb/include/lldb/Core/Log.h6
-rw-r--r--lldb/include/lldb/Target/Process.h10
-rw-r--r--lldb/include/lldb/Target/Target.h10
-rw-r--r--lldb/include/lldb/Target/Thread.h18
-rw-r--r--lldb/lldb.xcodeproj/project.pbxproj1
-rw-r--r--lldb/source/Core/Debugger.cpp50
-rw-r--r--lldb/source/Core/Log.cpp15
-rw-r--r--lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSXLog.cpp44
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp51
-rw-r--r--lldb/source/Target/Process.cpp37
-rw-r--r--lldb/source/Target/Target.cpp36
-rw-r--r--lldb/source/Target/Thread.cpp53
-rw-r--r--lldb/source/lldb-log.cpp63
-rw-r--r--lldb/source/lldb.cpp24
15 files changed, 237 insertions, 183 deletions
diff --git a/lldb/include/lldb/Core/Debugger.h b/lldb/include/lldb/Core/Debugger.h
index cafb89c7780..02df798e7b3 100644
--- a/lldb/include/lldb/Core/Debugger.h
+++ b/lldb/include/lldb/Core/Debugger.h
@@ -247,7 +247,7 @@ public:
};
static lldb::UserSettingsControllerSP &
- GetSettingsController (bool finish = false);
+ GetSettingsController ();
static lldb::DebuggerSP
CreateInstance ();
diff --git a/lldb/include/lldb/Core/Log.h b/lldb/include/lldb/Core/Log.h
index bc96842d5af..7c300400ccc 100644
--- a/lldb/include/lldb/Core/Log.h
+++ b/lldb/include/lldb/Core/Log.h
@@ -100,6 +100,12 @@ public:
static void
ListAllLogChannels (Stream *strm);
+ static void
+ Initialize ();
+
+ static void
+ Terminate ();
+
//------------------------------------------------------------------
// Member functions
//------------------------------------------------------------------
diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h
index 5b3b56b798d..d318ca1f651 100644
--- a/lldb/include/lldb/Target/Process.h
+++ b/lldb/include/lldb/Target/Process.h
@@ -393,8 +393,14 @@ public:
#endif
- static lldb::UserSettingsControllerSP
- GetSettingsController (bool finish = false);
+ static void
+ Initialize ();
+
+ static void
+ Terminate ();
+
+ static lldb::UserSettingsControllerSP &
+ GetSettingsController ();
void
UpdateInstanceName ();
diff --git a/lldb/include/lldb/Target/Target.h b/lldb/include/lldb/Target/Target.h
index debdd84853d..acc9cfeba25 100644
--- a/lldb/include/lldb/Target/Target.h
+++ b/lldb/include/lldb/Target/Target.h
@@ -123,8 +123,14 @@ public:
DISALLOW_COPY_AND_ASSIGN (SettingsController);
};
- static lldb::UserSettingsControllerSP
- GetSettingsController (bool finish = false);
+ static void
+ Initialize ();
+
+ static void
+ Terminate ();
+
+ static lldb::UserSettingsControllerSP &
+ GetSettingsController ();
static ArchSpec
GetDefaultArchitecture ();
diff --git a/lldb/include/lldb/Target/Thread.h b/lldb/include/lldb/Target/Thread.h
index e8042bc4110..038ba4de062 100644
--- a/lldb/include/lldb/Target/Thread.h
+++ b/lldb/include/lldb/Target/Thread.h
@@ -92,14 +92,14 @@ class Thread :
{
public:
- class ThreadSettingsController : public UserSettingsController
+ class SettingsController : public UserSettingsController
{
public:
- ThreadSettingsController ();
+ SettingsController ();
virtual
- ~ThreadSettingsController ();
+ ~SettingsController ();
static SettingEntry global_settings_table[];
static SettingEntry instance_settings_table[];
@@ -113,7 +113,7 @@ public:
// Class-wide settings.
- DISALLOW_COPY_AND_ASSIGN (ThreadSettingsController);
+ DISALLOW_COPY_AND_ASSIGN (SettingsController);
};
class RegisterCheckpoint
@@ -168,8 +168,14 @@ public:
void
UpdateInstanceName ();
- static lldb::UserSettingsControllerSP
- GetSettingsController (bool finish = false);
+ static void
+ Initialize ();
+
+ static void
+ Terminate ();
+
+ static lldb::UserSettingsControllerSP &
+ GetSettingsController ();
Thread (Process &process, lldb::tid_t tid);
virtual ~Thread();
diff --git a/lldb/lldb.xcodeproj/project.pbxproj b/lldb/lldb.xcodeproj/project.pbxproj
index 60587019895..2c13f0ca302 100644
--- a/lldb/lldb.xcodeproj/project.pbxproj
+++ b/lldb/lldb.xcodeproj/project.pbxproj
@@ -2452,6 +2452,7 @@
isa = PBXProject;
buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "lldb" */;
compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
en,
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp
index 5e6f93c91d4..2353b922e42 100644
--- a/lldb/source/Core/Debugger.cpp
+++ b/lldb/source/Core/Debugger.cpp
@@ -52,12 +52,27 @@ GetDebuggerList()
#pragma mark Debugger
+UserSettingsControllerSP &
+Debugger::GetSettingsController ()
+{
+ static UserSettingsControllerSP g_settings_controller;
+ return g_settings_controller;
+}
+
void
Debugger::Initialize ()
{
if (g_shared_debugger_refcount == 0)
+ {
lldb_private::Initialize();
+ UserSettingsControllerSP &usc = GetSettingsController();
+ usc.reset (new SettingsController);
+ UserSettingsController::InitializeSettingsController (usc,
+ SettingsController::global_settings_table,
+ SettingsController::instance_settings_table);
+ }
g_shared_debugger_refcount++;
+
}
void
@@ -68,10 +83,16 @@ Debugger::Terminate ()
g_shared_debugger_refcount--;
if (g_shared_debugger_refcount == 0)
{
+ UserSettingsControllerSP &usc = GetSettingsController();
+ UserSettingsController::FinalizeSettingsController (usc);
+ usc.reset();
lldb_private::WillTerminate();
lldb_private::Terminate();
}
}
+ // Clear our master list of debugger objects
+ Mutex::Locker locker (GetDebuggerListMutex ());
+ GetDebuggerList().clear();
}
DebuggerSP
@@ -144,7 +165,7 @@ Debugger::FindTargetWithProcessID (lldb::pid_t pid)
Debugger::Debugger () :
UserID (g_unique_id++),
- DebuggerInstanceSettings (*(Debugger::GetSettingsController().get())),
+ DebuggerInstanceSettings (*Debugger::GetSettingsController()),
m_input_comm("debugger.input"),
m_input_file (),
m_output_file (),
@@ -536,29 +557,6 @@ Debugger::FindDebuggerWithID (lldb::user_id_t id)
return debugger_sp;
}
-lldb::UserSettingsControllerSP &
-Debugger::GetSettingsController (bool finish)
-{
- static lldb::UserSettingsControllerSP g_settings_controller (new SettingsController);
- static bool initialized = false;
-
- if (!initialized)
- {
- initialized = UserSettingsController::InitializeSettingsController (g_settings_controller,
- Debugger::SettingsController::global_settings_table,
- Debugger::SettingsController::instance_settings_table);
- }
-
- if (finish)
- {
- UserSettingsControllerSP parent = g_settings_controller->GetParent();
- if (parent)
- parent->RemoveChild (g_settings_controller);
- g_settings_controller.reset();
- }
- return g_settings_controller;
-}
-
static void
TestPromptFormats (StackFrame *frame)
{
@@ -1261,7 +1259,7 @@ Debugger::SettingsController::~SettingsController ()
lldb::InstanceSettingsSP
Debugger::SettingsController::CreateInstanceSettings (const char *instance_name)
{
- DebuggerInstanceSettings *new_settings = new DebuggerInstanceSettings (*(Debugger::GetSettingsController().get()),
+ DebuggerInstanceSettings *new_settings = new DebuggerInstanceSettings (*Debugger::GetSettingsController(),
false, instance_name);
lldb::InstanceSettingsSP new_settings_sp (new_settings);
return new_settings_sp;
@@ -1306,7 +1304,7 @@ DebuggerInstanceSettings::DebuggerInstanceSettings
}
DebuggerInstanceSettings::DebuggerInstanceSettings (const DebuggerInstanceSettings &rhs) :
- InstanceSettings (*(Debugger::GetSettingsController().get()), CreateInstanceName ().AsCString()),
+ InstanceSettings (*Debugger::GetSettingsController(), CreateInstanceName ().AsCString()),
m_prompt (rhs.m_prompt),
m_frame_format (rhs.m_frame_format),
m_thread_format (rhs.m_thread_format),
diff --git a/lldb/source/Core/Log.cpp b/lldb/source/Core/Log.cpp
index 2b7b7175e4d..eaa8c759328 100644
--- a/lldb/source/Core/Log.cpp
+++ b/lldb/source/Core/Log.cpp
@@ -389,7 +389,7 @@ Log::DisableAllLogChannels (Stream *feedback_strm)
{
CallbackMap &callback_map = GetCallbackMap ();
CallbackMapIter pos, end = callback_map.end();
- Args args ("all");
+ Args args;
for (pos = callback_map.begin(); pos != end; ++pos)
pos->second.disable (args, feedback_strm);
@@ -401,6 +401,19 @@ Log::DisableAllLogChannels (Stream *feedback_strm)
}
void
+Log::Initialize()
+{
+ Log::Callbacks log_callbacks = { DisableLog, EnableLog, ListLogCategories };
+ Log::RegisterLogChannel ("lldb", log_callbacks);
+}
+
+void
+Log::Terminate ()
+{
+ DisableAllLogChannels (NULL);
+}
+
+void
Log::ListAllLogChannels (Stream *strm)
{
CallbackMap &callback_map = GetCallbackMap ();
diff --git a/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSXLog.cpp b/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSXLog.cpp
index 986989f690a..56db421dff0 100644
--- a/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSXLog.cpp
+++ b/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSXLog.cpp
@@ -48,29 +48,33 @@ ProcessMacOSXLog::DisableLog (Args &args, Stream *feedback_strm)
LogSP log (GetLog ());
if (log)
{
- uint32_t flag_bits = log->GetMask().Get();
+ uint32_t flag_bits = 0;
const size_t argc = args.GetArgumentCount ();
- for (size_t i = 0; i < argc; ++i)
+ if (argc > 0)
{
- const char *arg = args.GetArgumentAtIndex (i);
-
- if (::strcasecmp (arg, "all") == 0 ) flag_bits &= ~PD_LOG_ALL;
- else if (::strcasestr (arg, "break") == arg ) flag_bits &= ~PD_LOG_BREAKPOINTS;
- else if (::strcasecmp (arg, "default") == 0 ) flag_bits &= ~PD_LOG_DEFAULT;
- else if (::strcasestr (arg, "exc") == arg ) flag_bits &= ~PD_LOG_EXCEPTIONS;
- else if (::strcasecmp (arg, "memory") == 0 ) flag_bits &= ~PD_LOG_MEMORY;
- else if (::strcasecmp (arg, "data-short") == 0 ) flag_bits &= ~PD_LOG_MEMORY_DATA_SHORT;
- else if (::strcasecmp (arg, "data-long") == 0 ) flag_bits &= ~PD_LOG_MEMORY_DATA_LONG;
- else if (::strcasecmp (arg, "protections")== 0 ) flag_bits &= ~PD_LOG_PROCESS;
- else if (::strcasecmp (arg, "step") == 0 ) flag_bits &= ~PD_LOG_STEP;
- else if (::strcasecmp (arg, "task") == 0 ) flag_bits &= ~PD_LOG_TASK;
- else if (::strcasecmp (arg, "thread") == 0 ) flag_bits &= ~PD_LOG_THREAD;
- else if (::strcasecmp (arg, "verbose") == 0 ) flag_bits &= ~PD_LOG_VERBOSE;
- else if (::strcasestr (arg, "watch") == arg ) flag_bits &= ~PD_LOG_WATCHPOINTS;
- else
+ flag_bits = log->GetMask().Get();
+ for (size_t i = 0; i < argc; ++i)
{
- feedback_strm->Printf("error: unrecognized log category '%s'\n", arg);
- ListLogCategories (feedback_strm);
+ const char *arg = args.GetArgumentAtIndex (i);
+
+ if (::strcasecmp (arg, "all") == 0 ) flag_bits &= ~PD_LOG_ALL;
+ else if (::strcasestr (arg, "break") == arg ) flag_bits &= ~PD_LOG_BREAKPOINTS;
+ else if (::strcasecmp (arg, "default") == 0 ) flag_bits &= ~PD_LOG_DEFAULT;
+ else if (::strcasestr (arg, "exc") == arg ) flag_bits &= ~PD_LOG_EXCEPTIONS;
+ else if (::strcasecmp (arg, "memory") == 0 ) flag_bits &= ~PD_LOG_MEMORY;
+ else if (::strcasecmp (arg, "data-short") == 0 ) flag_bits &= ~PD_LOG_MEMORY_DATA_SHORT;
+ else if (::strcasecmp (arg, "data-long") == 0 ) flag_bits &= ~PD_LOG_MEMORY_DATA_LONG;
+ else if (::strcasecmp (arg, "protections")== 0 ) flag_bits &= ~PD_LOG_PROCESS;
+ else if (::strcasecmp (arg, "step") == 0 ) flag_bits &= ~PD_LOG_STEP;
+ else if (::strcasecmp (arg, "task") == 0 ) flag_bits &= ~PD_LOG_TASK;
+ else if (::strcasecmp (arg, "thread") == 0 ) flag_bits &= ~PD_LOG_THREAD;
+ else if (::strcasecmp (arg, "verbose") == 0 ) flag_bits &= ~PD_LOG_VERBOSE;
+ else if (::strcasestr (arg, "watch") == arg ) flag_bits &= ~PD_LOG_WATCHPOINTS;
+ else
+ {
+ feedback_strm->Printf("error: unrecognized log category '%s'\n", arg);
+ ListLogCategories (feedback_strm);
+ }
}
}
if (flag_bits == 0)
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp
index 963a468b432..f07b11d3f99 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp
@@ -48,33 +48,38 @@ ProcessGDBRemoteLog::DisableLog (Args &args, Stream *feedback_strm)
LogSP log (GetLog ());
if (log)
{
- uint32_t flag_bits = log->GetMask().Get();
+ uint32_t flag_bits = 0;
+
const size_t argc = args.GetArgumentCount ();
- for (size_t i = 0; i < argc; ++i)
+ if (argc > 0)
{
- const char *arg = args.GetArgumentAtIndex (i);
-
-
- if (::strcasecmp (arg, "all") == 0 ) flag_bits &= ~GDBR_LOG_ALL;
- else if (::strcasecmp (arg, "async") == 0 ) flag_bits &= ~GDBR_LOG_ASYNC;
- else if (::strcasestr (arg, "break") == arg ) flag_bits &= ~GDBR_LOG_BREAKPOINTS;
- else if (::strcasestr (arg, "comm") == arg ) flag_bits &= ~GDBR_LOG_COMM;
- else if (::strcasecmp (arg, "default") == 0 ) flag_bits &= ~GDBR_LOG_DEFAULT;
- else if (::strcasecmp (arg, "packets") == 0 ) flag_bits &= ~GDBR_LOG_PACKETS;
- else if (::strcasecmp (arg, "memory") == 0 ) flag_bits &= ~GDBR_LOG_MEMORY;
- else if (::strcasecmp (arg, "data-short") == 0 ) flag_bits &= ~GDBR_LOG_MEMORY_DATA_SHORT;
- else if (::strcasecmp (arg, "data-long") == 0 ) flag_bits &= ~GDBR_LOG_MEMORY_DATA_LONG;
- else if (::strcasecmp (arg, "process") == 0 ) flag_bits &= ~GDBR_LOG_PROCESS;
- else if (::strcasecmp (arg, "step") == 0 ) flag_bits &= ~GDBR_LOG_STEP;
- else if (::strcasecmp (arg, "thread") == 0 ) flag_bits &= ~GDBR_LOG_THREAD;
- else if (::strcasecmp (arg, "verbose") == 0 ) flag_bits &= ~GDBR_LOG_VERBOSE;
- else if (::strcasestr (arg, "watch") == arg ) flag_bits &= ~GDBR_LOG_WATCHPOINTS;
- else
+ flag_bits = log->GetMask().Get();
+ for (size_t i = 0; i < argc; ++i)
{
- feedback_strm->Printf("error: unrecognized log category '%s'\n", arg);
- ListLogCategories (feedback_strm);
+ const char *arg = args.GetArgumentAtIndex (i);
+
+
+ if (::strcasecmp (arg, "all") == 0 ) flag_bits &= ~GDBR_LOG_ALL;
+ else if (::strcasecmp (arg, "async") == 0 ) flag_bits &= ~GDBR_LOG_ASYNC;
+ else if (::strcasestr (arg, "break") == arg ) flag_bits &= ~GDBR_LOG_BREAKPOINTS;
+ else if (::strcasestr (arg, "comm") == arg ) flag_bits &= ~GDBR_LOG_COMM;
+ else if (::strcasecmp (arg, "default") == 0 ) flag_bits &= ~GDBR_LOG_DEFAULT;
+ else if (::strcasecmp (arg, "packets") == 0 ) flag_bits &= ~GDBR_LOG_PACKETS;
+ else if (::strcasecmp (arg, "memory") == 0 ) flag_bits &= ~GDBR_LOG_MEMORY;
+ else if (::strcasecmp (arg, "data-short") == 0 ) flag_bits &= ~GDBR_LOG_MEMORY_DATA_SHORT;
+ else if (::strcasecmp (arg, "data-long") == 0 ) flag_bits &= ~GDBR_LOG_MEMORY_DATA_LONG;
+ else if (::strcasecmp (arg, "process") == 0 ) flag_bits &= ~GDBR_LOG_PROCESS;
+ else if (::strcasecmp (arg, "step") == 0 ) flag_bits &= ~GDBR_LOG_STEP;
+ else if (::strcasecmp (arg, "thread") == 0 ) flag_bits &= ~GDBR_LOG_THREAD;
+ else if (::strcasecmp (arg, "verbose") == 0 ) flag_bits &= ~GDBR_LOG_VERBOSE;
+ else if (::strcasestr (arg, "watch") == arg ) flag_bits &= ~GDBR_LOG_WATCHPOINTS;
+ else
+ {
+ feedback_strm->Printf("error: unrecognized log category '%s'\n", arg);
+ ListLogCategories (feedback_strm);
+ }
+
}
-
}
if (flag_bits == 0)
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index a86a4e10187..0a758f6d5e2 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -2237,26 +2237,29 @@ Process::PopProcessInputReader ()
m_target.GetDebugger().PopInputReader (m_process_input_reader);
}
-lldb::UserSettingsControllerSP
-Process::GetSettingsController (bool finish)
-{
- static UserSettingsControllerSP g_settings_controller (new SettingsController);
- static bool initialized = false;
- if (!initialized)
- {
- initialized = UserSettingsController::InitializeSettingsController (g_settings_controller,
- Process::SettingsController::global_settings_table,
- Process::SettingsController::instance_settings_table);
- }
+void
+Process::Initialize ()
+{
+ UserSettingsControllerSP &usc = GetSettingsController();
+ usc.reset (new SettingsController);
+ UserSettingsController::InitializeSettingsController (usc,
+ SettingsController::global_settings_table,
+ SettingsController::instance_settings_table);
+}
- if (finish)
- {
- UserSettingsController::FinalizeSettingsController (g_settings_controller);
- g_settings_controller.reset();
- initialized = false;
- }
+void
+Process::Terminate ()
+{
+ UserSettingsControllerSP &usc = GetSettingsController();
+ UserSettingsController::FinalizeSettingsController (usc);
+ usc.reset();
+}
+UserSettingsControllerSP &
+Process::GetSettingsController ()
+{
+ static UserSettingsControllerSP g_settings_controller;
return g_settings_controller;
}
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index 5464b297392..da42e47c08d 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -769,26 +769,28 @@ Target::GetScratchClangASTContext()
return m_scratch_ast_context_ap.get();
}
-lldb::UserSettingsControllerSP
-Target::GetSettingsController (bool finish)
+void
+Target::Initialize ()
{
- static lldb::UserSettingsControllerSP g_settings_controller (new SettingsController);
- static bool initialized = false;
-
- if (!initialized)
- {
- initialized = UserSettingsController::InitializeSettingsController (g_settings_controller,
- Target::SettingsController::global_settings_table,
- Target::SettingsController::instance_settings_table);
- }
+ UserSettingsControllerSP &usc = GetSettingsController();
+ usc.reset (new SettingsController);
+ UserSettingsController::InitializeSettingsController (usc,
+ SettingsController::global_settings_table,
+ SettingsController::instance_settings_table);
+}
- if (finish)
- {
- UserSettingsController::FinalizeSettingsController (g_settings_controller);
- g_settings_controller.reset();
- initialized = false;
- }
+void
+Target::Terminate ()
+{
+ UserSettingsControllerSP &usc = GetSettingsController();
+ UserSettingsController::FinalizeSettingsController (usc);
+ usc.reset();
+}
+UserSettingsControllerSP &
+Target::GetSettingsController ()
+{
+ static UserSettingsControllerSP g_settings_controller;
return g_settings_controller;
}
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 22129d6ff6a..789f3a0362b 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -930,26 +930,29 @@ Thread::GetSP ()
return m_process.GetThreadList().GetThreadSPForThreadPtr(this);
}
-lldb::UserSettingsControllerSP
-Thread::GetSettingsController (bool finish)
-{
- static UserSettingsControllerSP g_settings_controller (new ThreadSettingsController);
- static bool initialized = false;
- if (!initialized)
- {
- initialized = UserSettingsController::InitializeSettingsController (g_settings_controller,
- Thread::ThreadSettingsController::global_settings_table,
- Thread::ThreadSettingsController::instance_settings_table);
- }
+void
+Thread::Initialize ()
+{
+ UserSettingsControllerSP &usc = GetSettingsController();
+ usc.reset (new SettingsController);
+ UserSettingsController::InitializeSettingsController (usc,
+ SettingsController::global_settings_table,
+ SettingsController::instance_settings_table);
+}
- if (finish)
- {
- UserSettingsController::FinalizeSettingsController (g_settings_controller);
- g_settings_controller.reset();
- initialized = false;
- }
+void
+Thread::Terminate ()
+{
+ UserSettingsControllerSP &usc = GetSettingsController();
+ UserSettingsController::FinalizeSettingsController (usc);
+ usc.reset();
+}
+UserSettingsControllerSP &
+Thread::GetSettingsController ()
+{
+ static UserSettingsControllerSP g_settings_controller;
return g_settings_controller;
}
@@ -1010,24 +1013,24 @@ Thread::RunModeAsCString (lldb::RunMode mode)
return unknown_state_string;
}
-#pragma mark "Thread::ThreadSettingsController"
+#pragma mark "Thread::SettingsController"
//--------------------------------------------------------------
-// class Thread::ThreadSettingsController
+// class Thread::SettingsController
//--------------------------------------------------------------
-Thread::ThreadSettingsController::ThreadSettingsController () :
+Thread::SettingsController::SettingsController () :
UserSettingsController ("thread", Process::GetSettingsController())
{
m_default_settings.reset (new ThreadInstanceSettings (*this, false,
InstanceSettings::GetDefaultName().AsCString()));
}
-Thread::ThreadSettingsController::~ThreadSettingsController ()
+Thread::SettingsController::~SettingsController ()
{
}
lldb::InstanceSettingsSP
-Thread::ThreadSettingsController::CreateInstanceSettings (const char *instance_name)
+Thread::SettingsController::CreateInstanceSettings (const char *instance_name)
{
ThreadInstanceSettings *new_settings = new ThreadInstanceSettings (*(Thread::GetSettingsController().get()),
false, instance_name);
@@ -1218,11 +1221,11 @@ ThreadInstanceSettings::GetTraceThreadVarName ()
}
//--------------------------------------------------
-// ThreadSettingsController Variable Tables
+// SettingsController Variable Tables
//--------------------------------------------------
SettingEntry
-Thread::ThreadSettingsController::global_settings_table[] =
+Thread::SettingsController::global_settings_table[] =
{
//{ "var-name", var-type , "default", enum-table, init'd, hidden, "help-text"},
{ NULL, eSetVarTypeNone, NULL, NULL, 0, 0, NULL }
@@ -1230,7 +1233,7 @@ Thread::ThreadSettingsController::global_settings_table[] =
SettingEntry
-Thread::ThreadSettingsController::instance_settings_table[] =
+Thread::SettingsController::instance_settings_table[] =
{
//{ "var-name", var-type, "default", enum-table, init'd, hidden, "help-text"},
{ "step-avoid-regexp", eSetVarTypeString, "", NULL, false, false, "A regular expression defining functions step-in won't stop in." },
diff --git a/lldb/source/lldb-log.cpp b/lldb/source/lldb-log.cpp
index a0884a6ac5b..5e4d6f545c4 100644
--- a/lldb/source/lldb-log.cpp
+++ b/lldb/source/lldb-log.cpp
@@ -101,43 +101,46 @@ void
lldb_private::DisableLog (Args &args, Stream *feedback_strm)
{
LogSP log(GetLog ());
- uint32_t flag_bits;
if (log)
{
- flag_bits = log->GetMask().Get();
+ uint32_t flag_bits = 0;
const size_t argc = args.GetArgumentCount ();
- for (size_t i = 0; i < argc; ++i)
+ if (argc > 0)
{
- const char *arg = args.GetArgumentAtIndex (i);
-
- if (strcasecmp(arg, "all") == 0 ) flag_bits &= ~LIBLLDB_LOG_ALL;
- else if (strcasecmp(arg, "api") == 0) flag_bits &= ~LIBLLDB_LOG_API;
- else if (strcasestr(arg, "break") == arg) flag_bits &= ~LIBLLDB_LOG_BREAKPOINTS;
- else if (strcasecmp(arg, "default") == 0 ) flag_bits &= ~LIBLLDB_LOG_DEFAULT;
- else if (strcasecmp(arg, "dyld") == 0 ) flag_bits &= ~LIBLLDB_LOG_DYNAMIC_LOADER;
- else if (strcasestr(arg, "event") == arg) flag_bits &= ~LIBLLDB_LOG_EVENTS;
- else if (strcasestr(arg, "expr") == arg) flag_bits &= ~LIBLLDB_LOG_EXPRESSIONS;
- else if (strcasestr(arg, "object") == arg) flag_bits &= ~LIBLLDB_LOG_OBJECT;
- else if (strcasecmp(arg, "process") == 0 ) flag_bits &= ~LIBLLDB_LOG_PROCESS;
- else if (strcasecmp(arg, "script") == 0) flag_bits &= ~LIBLLDB_LOG_SCRIPT;
- else if (strcasecmp(arg, "state") == 0 ) flag_bits &= ~LIBLLDB_LOG_STATE;
- else if (strcasecmp(arg, "step") == 0 ) flag_bits &= ~LIBLLDB_LOG_STEP;
- else if (strcasecmp(arg, "thread") == 0 ) flag_bits &= ~LIBLLDB_LOG_THREAD;
- else if (strcasecmp(arg, "verbose") == 0 ) flag_bits &= ~LIBLLDB_LOG_VERBOSE;
- else if (strcasestr(arg, "watch") == arg) flag_bits &= ~LIBLLDB_LOG_WATCHPOINTS;
- else if (strcasestr(arg, "temp") == arg) flag_bits &= ~LIBLLDB_LOG_TEMPORARY;
- else if (strcasestr(arg, "comm") == arg) flag_bits &= ~LIBLLDB_LOG_COMMUNICATION;
- else if (strcasestr(arg, "conn") == arg) flag_bits &= ~LIBLLDB_LOG_CONNECTION;
- else if (strcasestr(arg, "host") == arg) flag_bits &= ~LIBLLDB_LOG_HOST;
- else if (strcasestr(arg, "unwind") == arg) flag_bits &= ~LIBLLDB_LOG_UNWIND;
- else
+ flag_bits = log->GetMask().Get();
+ for (size_t i = 0; i < argc; ++i)
{
- feedback_strm->Printf ("error: unrecognized log category '%s'\n", arg);
- ListLogCategories (feedback_strm);
- return;
+ const char *arg = args.GetArgumentAtIndex (i);
+
+ if (strcasecmp(arg, "all") == 0 ) flag_bits &= ~LIBLLDB_LOG_ALL;
+ else if (strcasecmp(arg, "api") == 0) flag_bits &= ~LIBLLDB_LOG_API;
+ else if (strcasestr(arg, "break") == arg) flag_bits &= ~LIBLLDB_LOG_BREAKPOINTS;
+ else if (strcasecmp(arg, "default") == 0 ) flag_bits &= ~LIBLLDB_LOG_DEFAULT;
+ else if (strcasecmp(arg, "dyld") == 0 ) flag_bits &= ~LIBLLDB_LOG_DYNAMIC_LOADER;
+ else if (strcasestr(arg, "event") == arg) flag_bits &= ~LIBLLDB_LOG_EVENTS;
+ else if (strcasestr(arg, "expr") == arg) flag_bits &= ~LIBLLDB_LOG_EXPRESSIONS;
+ else if (strcasestr(arg, "object") == arg) flag_bits &= ~LIBLLDB_LOG_OBJECT;
+ else if (strcasecmp(arg, "process") == 0 ) flag_bits &= ~LIBLLDB_LOG_PROCESS;
+ else if (strcasecmp(arg, "script") == 0) flag_bits &= ~LIBLLDB_LOG_SCRIPT;
+ else if (strcasecmp(arg, "state") == 0 ) flag_bits &= ~LIBLLDB_LOG_STATE;
+ else if (strcasecmp(arg, "step") == 0 ) flag_bits &= ~LIBLLDB_LOG_STEP;
+ else if (strcasecmp(arg, "thread") == 0 ) flag_bits &= ~LIBLLDB_LOG_THREAD;
+ else if (strcasecmp(arg, "verbose") == 0 ) flag_bits &= ~LIBLLDB_LOG_VERBOSE;
+ else if (strcasestr(arg, "watch") == arg) flag_bits &= ~LIBLLDB_LOG_WATCHPOINTS;
+ else if (strcasestr(arg, "temp") == arg) flag_bits &= ~LIBLLDB_LOG_TEMPORARY;
+ else if (strcasestr(arg, "comm") == arg) flag_bits &= ~LIBLLDB_LOG_COMMUNICATION;
+ else if (strcasestr(arg, "conn") == arg) flag_bits &= ~LIBLLDB_LOG_CONNECTION;
+ else if (strcasestr(arg, "host") == arg) flag_bits &= ~LIBLLDB_LOG_HOST;
+ else if (strcasestr(arg, "unwind") == arg) flag_bits &= ~LIBLLDB_LOG_UNWIND;
+ else
+ {
+ feedback_strm->Printf ("error: unrecognized log category '%s'\n", arg);
+ ListLogCategories (feedback_strm);
+ return;
+ }
+
}
-
}
if (flag_bits == 0)
GetLog ().reset();
diff --git a/lldb/source/lldb.cpp b/lldb/source/lldb.cpp
index 4d26a155c1f..082274bb1bb 100644
--- a/lldb/source/lldb.cpp
+++ b/lldb/source/lldb.cpp
@@ -57,12 +57,13 @@ lldb_private::Initialize ()
if (!g_inited)
{
g_inited = true;
+ Log::Initialize();
Timer::Initialize ();
Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
-
- Log::Callbacks log_callbacks = { DisableLog, EnableLog, ListLogCategories };
-
- Log::RegisterLogChannel ("lldb", log_callbacks);
+
+ Target::Initialize ();
+ Process::Initialize ();
+ Thread::Initialize ();
DisassemblerLLVM::Initialize();
ObjectContainerBSDArchive::Initialize();
ObjectFileELF::Initialize();
@@ -86,10 +87,6 @@ lldb_private::Initialize ()
//ProcessMacOSX::Initialize();
SymbolVendorMacOSX::Initialize();
#endif
- Debugger::GetSettingsController (false);
- Target::GetSettingsController (false);
- Process::GetSettingsController (false);
- Thread::GetSettingsController (false);
#ifdef __linux__
ProcessLinux::Initialize();
#endif
@@ -128,14 +125,15 @@ lldb_private::Terminate ()
SymbolVendorMacOSX::Terminate();
#endif
- Thread::GetSettingsController (true);
- Process::GetSettingsController (true);
- Target::GetSettingsController (true);
- Debugger::GetSettingsController (true);
-
+ Thread::Terminate ();
+ Process::Terminate ();
+ Target::Terminate ();
+
#ifdef __linux__
ProcessLinux::Terminate();
#endif
+
+ Log::Terminate();
}
extern "C" const double LLDBVersionNumber;
OpenPOWER on IntegriCloud