[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