[Lldb-commits] [lldb] db5f745 - [lldb] Make some functions useful to REPLs public

walter erquinigo via lldb-commits lldb-commits at lists.llvm.org
Thu May 4 12:44:42 PDT 2023


Author: walter erquinigo
Date: 2023-05-04T14:44:03-05:00
New Revision: db5f745a2bfcd1b93fc298da6cfcf5ed2f00e98f

URL: https://github.com/llvm/llvm-project/commit/db5f745a2bfcd1b93fc298da6cfcf5ed2f00e98f
DIFF: https://github.com/llvm/llvm-project/commit/db5f745a2bfcd1b93fc298da6cfcf5ed2f00e98f.diff

LOG: [lldb] Make some functions useful to REPLs public

`StartEventHandlerThread` and `StopEventHandlerThread` are available to the SwiftREPL even though they are protected because SwiftREPL is a friend class of Debugger. I'm developing my own REPL and having access to these functions, including `FlushProcessOutput`, is desirable.

Differential Revision: https://reviews.llvm.org/D149717

Added: 
    

Modified: 
    lldb/include/lldb/Core/Debugger.h

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/Core/Debugger.h b/lldb/include/lldb/Core/Debugger.h
index 12c1c046fbcef..a7487e159e2c7 100644
--- a/lldb/include/lldb/Core/Debugger.h
+++ b/lldb/include/lldb/Core/Debugger.h
@@ -500,6 +500,19 @@ class Debugger : public std::enable_shared_from_this<Debugger>,
   SetDestroyCallback(lldb_private::DebuggerDestroyCallback destroy_callback,
                      void *baton);
 
+  /// Manually start the global event handler thread. It is useful to plugins
+  /// that directly use the \a lldb_private namespace and want to use the
+  /// debugger's default event handler thread instead of defining their own.
+  bool StartEventHandlerThread();
+
+  /// Manually stop the debugger's default event handler.
+  void StopEventHandlerThread();
+
+  /// Force flushing the process's pending stdout and stderr to the debugger's
+  /// asynchronous stdout and stderr streams.
+  void FlushProcessOutput(Process &process, bool flush_stdout,
+                          bool flush_stderr);
+
 protected:
   friend class CommandInterpreter;
   friend class REPL;
@@ -548,10 +561,6 @@ class Debugger : public std::enable_shared_from_this<Debugger>,
 
   void PrintProgress(const ProgressEventData &data);
 
-  bool StartEventHandlerThread();
-
-  void StopEventHandlerThread();
-
   void PushIOHandler(const lldb::IOHandlerSP &reader_sp,
                      bool cancel_top_handler = true);
 
@@ -587,8 +596,6 @@ class Debugger : public std::enable_shared_from_this<Debugger>,
 
   // Ensures two threads don't attempt to flush process output in parallel.
   std::mutex m_output_flush_mutex;
-  void FlushProcessOutput(Process &process, bool flush_stdout,
-                          bool flush_stderr);
 
   SourceManager::SourceFileCache &GetSourceFileCache() {
     return m_source_file_cache;


        


More information about the lldb-commits mailing list