[Lldb-commits] [lldb] [lldb-dap] Remove `g_dap` references from lldb-dap/LLDBUtils. (PR #115933)
John Harrison via lldb-commits
lldb-commits at lists.llvm.org
Tue Nov 12 12:12:41 PST 2024
https://github.com/ashgti updated https://github.com/llvm/llvm-project/pull/115933
>From db7efd17208479fb56eac01eaad1f8bcb993db04 Mon Sep 17 00:00:00 2001
From: John Harrison <harjohn at google.com>
Date: Tue, 12 Nov 2024 14:41:28 -0500
Subject: [PATCH 1/2] [lldb-dap] Remove `g_dap` references from
lldb-dap/LLDBUtils.
This refactor removes g_dap references from lldb-dap/LLDBUtils.{h,cpp} to allow us to create more than one g_dap instance in the future.
---
lldb/tools/lldb-dap/DAP.cpp | 2 +-
lldb/tools/lldb-dap/LLDBUtils.cpp | 14 +++++++-------
lldb/tools/lldb-dap/LLDBUtils.h | 10 +++++++---
lldb/tools/lldb-dap/lldb-dap.cpp | 4 ++--
4 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp
index e45f9bf359e5bf..10d2d5d79a74bf 100644
--- a/lldb/tools/lldb-dap/DAP.cpp
+++ b/lldb/tools/lldb-dap/DAP.cpp
@@ -548,7 +548,7 @@ bool DAP::RunLLDBCommands(llvm::StringRef prefix,
llvm::ArrayRef<std::string> commands) {
bool required_command_failed = false;
std::string output =
- ::RunLLDBCommands(prefix, commands, required_command_failed);
+ ::RunLLDBCommands(debugger, prefix, commands, required_command_failed);
SendOutput(OutputType::Console, output);
return !required_command_failed;
}
diff --git a/lldb/tools/lldb-dap/LLDBUtils.cpp b/lldb/tools/lldb-dap/LLDBUtils.cpp
index 2ffcba7dff4f24..48b63b59e0e3fe 100644
--- a/lldb/tools/lldb-dap/LLDBUtils.cpp
+++ b/lldb/tools/lldb-dap/LLDBUtils.cpp
@@ -15,7 +15,7 @@
namespace lldb_dap {
-bool RunLLDBCommands(llvm::StringRef prefix,
+bool RunLLDBCommands(lldb::SBDebugger &debugger, llvm::StringRef prefix,
const llvm::ArrayRef<std::string> &commands,
llvm::raw_ostream &strm, bool parse_command_directives) {
if (commands.empty())
@@ -23,7 +23,7 @@ bool RunLLDBCommands(llvm::StringRef prefix,
bool did_print_prefix = false;
- lldb::SBCommandInterpreter interp = g_dap.debugger.GetCommandInterpreter();
+ lldb::SBCommandInterpreter interp = debugger.GetCommandInterpreter();
for (llvm::StringRef command : commands) {
lldb::SBCommandReturnObject result;
bool quiet_on_success = false;
@@ -78,23 +78,23 @@ bool RunLLDBCommands(llvm::StringRef prefix,
return true;
}
-std::string RunLLDBCommands(llvm::StringRef prefix,
+std::string RunLLDBCommands(lldb::SBDebugger &debugger, llvm::StringRef prefix,
const llvm::ArrayRef<std::string> &commands,
bool &required_command_failed,
bool parse_command_directives) {
required_command_failed = false;
std::string s;
llvm::raw_string_ostream strm(s);
- required_command_failed =
- !RunLLDBCommands(prefix, commands, strm, parse_command_directives);
+ required_command_failed = !RunLLDBCommands(debugger, prefix, commands, strm,
+ parse_command_directives);
return s;
}
std::string
-RunLLDBCommandsVerbatim(llvm::StringRef prefix,
+RunLLDBCommandsVerbatim(lldb::SBDebugger &debugger, llvm::StringRef prefix,
const llvm::ArrayRef<std::string> &commands) {
bool required_command_failed = false;
- return RunLLDBCommands(prefix, commands, required_command_failed,
+ return RunLLDBCommands(debugger, prefix, commands, required_command_failed,
/*parse_command_directives=*/false);
}
diff --git a/lldb/tools/lldb-dap/LLDBUtils.h b/lldb/tools/lldb-dap/LLDBUtils.h
index d5072d19029a1e..683d48a4a46321 100644
--- a/lldb/tools/lldb-dap/LLDBUtils.h
+++ b/lldb/tools/lldb-dap/LLDBUtils.h
@@ -10,6 +10,7 @@
#define LLDB_TOOLS_LLDB_DAP_LLDBUTILS_H
#include "DAPForward.h"
+#include "lldb/API/SBDebugger.h"
#include "lldb/API/SBEnvironment.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
@@ -30,6 +31,9 @@ namespace lldb_dap {
/// emitted regardless, and \b false is returned without executing the
/// remaining commands.
///
+/// \param[in] debugger
+/// The debugger that will execute the lldb commands.
+///
/// \param[in] prefix
/// A string that will be printed into \a strm prior to emitting
/// the prompt + command and command output. Can be NULL.
@@ -48,7 +52,7 @@ namespace lldb_dap {
/// \return
/// \b true, unless a command prefixed with \b ! fails and parsing of
/// command directives is enabled.
-bool RunLLDBCommands(llvm::StringRef prefix,
+bool RunLLDBCommands(lldb::SBDebugger &debugger, llvm::StringRef prefix,
const llvm::ArrayRef<std::string> &commands,
llvm::raw_ostream &strm, bool parse_command_directives);
@@ -75,14 +79,14 @@ bool RunLLDBCommands(llvm::StringRef prefix,
/// \return
/// A std::string that contains the prefix and all commands and
/// command output.
-std::string RunLLDBCommands(llvm::StringRef prefix,
+std::string RunLLDBCommands(lldb::SBDebugger &debugger, llvm::StringRef prefix,
const llvm::ArrayRef<std::string> &commands,
bool &required_command_failed,
bool parse_command_directives = true);
/// Similar to the method above, but without parsing command directives.
std::string
-RunLLDBCommandsVerbatim(llvm::StringRef prefix,
+RunLLDBCommandsVerbatim(lldb::SBDebugger &debugger, llvm::StringRef prefix,
const llvm::ArrayRef<std::string> &commands);
/// Check if a thread has a stop reason.
diff --git a/lldb/tools/lldb-dap/lldb-dap.cpp b/lldb/tools/lldb-dap/lldb-dap.cpp
index c50e7abb32b47b..180923f1f145a2 100644
--- a/lldb/tools/lldb-dap/lldb-dap.cpp
+++ b/lldb/tools/lldb-dap/lldb-dap.cpp
@@ -1615,8 +1615,8 @@ void request_evaluate(const llvm::json::Object &request) {
if (frame.IsValid()) {
g_dap.focus_tid = frame.GetThread().GetThreadID();
}
- auto result =
- RunLLDBCommandsVerbatim(llvm::StringRef(), {std::string(expression)});
+ auto result = RunLLDBCommandsVerbatim(g_dap.debugger, llvm::StringRef(),
+ {std::string(expression)});
EmplaceSafeString(body, "result", result);
body.try_emplace("variablesReference", (int64_t)0);
} else {
>From c72930dd8fc2d3ed67f5aa5d732579ab99446104 Mon Sep 17 00:00:00 2001
From: John Harrison <harjohn at google.com>
Date: Tue, 12 Nov 2024 15:12:03 -0500
Subject: [PATCH 2/2] Updating the doc comment.
---
lldb/tools/lldb-dap/LLDBUtils.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lldb/tools/lldb-dap/LLDBUtils.h b/lldb/tools/lldb-dap/LLDBUtils.h
index 683d48a4a46321..a9e13bb3678dac 100644
--- a/lldb/tools/lldb-dap/LLDBUtils.h
+++ b/lldb/tools/lldb-dap/LLDBUtils.h
@@ -61,6 +61,9 @@ bool RunLLDBCommands(lldb::SBDebugger &debugger, llvm::StringRef prefix,
/// All output from every command, including the prompt + the command
/// is returned in the std::string return value.
///
+/// \param[in] debugger
+/// The debugger that will execute the lldb commands.
+///
/// \param[in] prefix
/// A string that will be printed into \a strm prior to emitting
/// the prompt + command and command output. Can be NULL.
More information about the lldb-commits
mailing list