[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