Skip to content

Commit

Permalink
[lldb] Print an error for unsupported combinations of log options
Browse files Browse the repository at this point in the history
Print an error for unsupported combinations of log handlers and log
options. Only the stream log handler takes a file and only the circular
and stream handler take a buffer size. This cannot be dealt with through
option groups because the option combinations depend on the requested
handler.

Differential revision: https://reviews.llvm.org/D143623
  • Loading branch information
JDevlieghere committed Feb 9, 2023
1 parent 08b1708 commit 3c565c2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lldb/source/Commands/CommandObjectLog.cpp
Expand Up @@ -177,6 +177,20 @@ class CommandObjectLogEnable : public CommandObjectParsed {
return false;
}

if ((m_options.handler != eLogHandlerCircular &&
m_options.handler != eLogHandlerStream) &&
m_options.buffer_size.GetCurrentValue() != 0) {
result.AppendError("a buffer size can only be specified for the circular "
"and stream buffer handler.\n");
return false;
}

if (m_options.handler != eLogHandlerStream && m_options.log_file) {
result.AppendError(
"a file name can only be specified for the stream handler.\n");
return false;
}

// Store into a std::string since we're about to shift the channel off.
const std::string channel = std::string(args[0].ref());
args.Shift(); // Shift off the channel
Expand Down
5 changes: 5 additions & 0 deletions lldb/test/Shell/Log/TestHandlers.test
@@ -0,0 +1,5 @@
# RUN: %lldb -o 'log enable --log-handler os --file /tmp/foo gdb-remote packets' 2>&1 | FileCheck %s --check-prefix UNSUPPORTED-FILE
# RUN: %lldb -o 'log enable --log-handler os --buffer 10 gdb-remote packets' 2>&1 | FileCheck %s --check-prefix UNSUPPORTED-BUFFER

# UNSUPPORTED-FILE: a file name can only be specified for the stream handler
# UNSUPPORTED-BUFFER: a buffer size can only be specified for the circular and stream buffer handler

0 comments on commit 3c565c2

Please sign in to comment.