diff options
author | Caroline Tice <ctice@apple.com> | 2010-10-29 21:48:37 +0000 |
---|---|---|
committer | Caroline Tice <ctice@apple.com> | 2010-10-29 21:48:37 +0000 |
commit | 20ad3c40f4693d446ce69feda59a5e91ca0ea3a3 (patch) | |
tree | 9ee0d6a6ba4718f97a00a3db80890e9490d94d08 /lldb/source/Commands | |
parent | 4a0c2d73c3092e0a03223a08cdf4eade3fb8f258 (diff) | |
download | bcm5719-llvm-20ad3c40f4693d446ce69feda59a5e91ca0ea3a3.tar.gz bcm5719-llvm-20ad3c40f4693d446ce69feda59a5e91ca0ea3a3.zip |
Add the ability to disable individual log categories, rather
than just the entire log channel.
Add checks, where appropriate, to make sure a log channel/category has
not been disabled before attempting to write to it.
llvm-svn: 117715
Diffstat (limited to 'lldb/source/Commands')
-rw-r--r-- | lldb/source/Commands/CommandObjectLog.cpp | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/lldb/source/Commands/CommandObjectLog.cpp b/lldb/source/Commands/CommandObjectLog.cpp index 56630c9068c..f814dd2e3b4 100644 --- a/lldb/source/Commands/CommandObjectLog.cpp +++ b/lldb/source/Commands/CommandObjectLog.cpp @@ -291,31 +291,29 @@ public: } else { - for (size_t i=0; i<argc; ++i) - { - Log::Callbacks log_callbacks; + Log::Callbacks log_callbacks; - std::string channel(args.GetArgumentAtIndex(i)); - if (Log::GetLogChannelCallbacks (channel.c_str(), log_callbacks)) + std::string channel(args.GetArgumentAtIndex(0)); + args.Shift (); // Shift off the channel + if (Log::GetLogChannelCallbacks (channel.c_str(), log_callbacks)) + { + log_callbacks.disable (args, &result.GetErrorStream()); + result.SetStatus(eReturnStatusSuccessFinishNoResult); + } + else if (channel == "all") + { + Log::DisableAllLogChannels(&result.GetErrorStream()); + } + else + { + LogChannelSP log_channel_sp (GetLogChannelPluginForChannel(channel.c_str())); + if (log_channel_sp) { - log_callbacks.disable (); + log_channel_sp->Disable(args, &result.GetErrorStream()); result.SetStatus(eReturnStatusSuccessFinishNoResult); } - else if (channel == "all") - { - Log::DisableAllLogChannels(); - } else - { - LogChannelSP log_channel_sp (GetLogChannelPluginForChannel(channel.c_str())); - if (log_channel_sp) - { - log_channel_sp->Disable(); - result.SetStatus(eReturnStatusSuccessFinishNoResult); - } - else - result.AppendErrorWithFormat("Invalid log channel '%s'.\n", args.GetArgumentAtIndex(0)); - } + result.AppendErrorWithFormat("Invalid log channel '%s'.\n", args.GetArgumentAtIndex(0)); } } return result.Succeeded(); |