mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 03:56:16 +08:00
[lldb-dap] Remove g_dap references from lldb-dap/LLDBUtils. (#115933)
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.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -57,6 +61,9 @@ bool RunLLDBCommands(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.
|
||||
@@ -75,14 +82,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.
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user