[Lldb-commits] [PATCH] D112988: [lldb] fix --source-quietly
Lawrence D'Anna via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Nov 2 00:32:40 PDT 2021
lawrence_danna created this revision.
lawrence_danna added reviewers: jasonmolenda, JDevlieghere, jingham.
Herald added subscribers: dang, pengfei.
lawrence_danna requested review of this revision.
Herald added a project: LLDB.
Jim says:
lldb has a -Q or --source-quietly option, which supposedly does:
--source-quietly Tells the debugger to execute this one-line lldb command before any file has been loaded.
That seems like a weird description, since we don't generally use source for one line entries, but anyway, let's try it:
> $LLDB_LLVM/clean-mono/build/Debug/bin/lldb -Q "script print('I should be quiet')" a.out -O "script print('I should be before')" -o "script print('I should be after')"
(lldb) script print('I should be before')
I should be before
(lldb) target create "script print('I should be quiet')"
error: unable to find executable for 'script print('I should be quiet')'
That was weird. The first real -O gets sourced but not quietly, then the argument to the -Q gets treated as the target.
> $LLDB_LLVM/clean-mono/build/Debug/bin/lldb -Q a.out -O "script print('I should be before')" -o "script print('I should be after')"
(lldb) script print('I should be before')
I should be before
(lldb) target create "a.out"
Current executable set to '/tmp/a.out' (x86_64).
(lldb) script print('I should be after')
I should be after
Well, that's a little better, but the -Q option seems to have done nothing.
---
This fixes the description of --source-quietly, as well as causing it
to actually suppress echoing while executing the initialization
commands.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D112988
Files:
lldb/docs/man/lldb.rst
lldb/test/Shell/Driver/TestQuiet.test
lldb/tools/driver/Driver.cpp
lldb/tools/driver/Options.td
Index: lldb/tools/driver/Options.td
===================================================================
--- lldb/tools/driver/Options.td
+++ lldb/tools/driver/Options.td
@@ -114,7 +114,7 @@
Group<grp_command>;
def source_quietly: F<"source-quietly">,
- HelpText<"Tells the debugger to execute this one-line lldb command before any file has been loaded.">,
+ HelpText<"Tells the debugger not to echo commands while sourcing filles or one-line commands provided on the command line.">,
Group<grp_command>;
def: Flag<["-"], "Q">,
Alias<source_quietly>,
Index: lldb/tools/driver/Driver.cpp
===================================================================
--- lldb/tools/driver/Driver.cpp
+++ lldb/tools/driver/Driver.cpp
@@ -627,6 +627,7 @@
options.SetSpawnThread(false);
options.SetStopOnError(true);
options.SetStopOnCrash(m_option_data.m_batch);
+ options.SetEchoCommands(!m_option_data.m_source_quietly);
SBCommandInterpreterRunResult results =
m_debugger.RunCommandInterpreter(options);
Index: lldb/test/Shell/Driver/TestQuiet.test
===================================================================
--- /dev/null
+++ lldb/test/Shell/Driver/TestQuiet.test
@@ -0,0 +1,7 @@
+RUN: %lldb -b -Q -o "expr 40 + 2" | FileCheck %s
+RUN: %lldb -b -Q -O "expr 40 + 2" | FileCheck %s
+
+CHECK-NOT: expr
+CHECK-NOT: lldb
+CHECK-NOT: source
+CHECK: 42
\ No newline at end of file
Index: lldb/docs/man/lldb.rst
===================================================================
--- lldb/docs/man/lldb.rst
+++ lldb/docs/man/lldb.rst
@@ -111,7 +111,7 @@
.. option:: --source-quietly
- Tells the debugger to execute this one-line lldb command before any file has been loaded.
+ Tells the debugger not to echo commands while sourcing filles or one-line commands provided on the command line.
.. option:: --source <file>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112988.383989.patch
Type: text/x-patch
Size: 1865 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20211102/1dcd78bc/attachment.bin>
More information about the lldb-commits
mailing list