Author: Hu Jialun Date: 2025-05-22T20:20:35-07:00 New Revision: 695d725edfb71e3e048229b96a5b3e9c2adad048
URL: https://github.com/llvm/llvm-project/commit/695d725edfb71e3e048229b96a5b3e9c2adad048 DIFF: https://github.com/llvm/llvm-project/commit/695d725edfb71e3e048229b96a5b3e9c2adad048.diff LOG: [lldb-dap] Assorted small fixes for runInTerminal (#140908) - `CreateRunInTerminalReverseRequest` is passed a `StringMap` by value, whose keys are owned and deallocated after return. - Target args are wrongly specified as reverse request (launcher) args. - Test case error message did not catch up with a0aa5f8. All runInTerminal tests are passing with this applied. Added: Modified: lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py lldb/tools/lldb-dap/JSONUtils.cpp lldb/tools/lldb-dap/JSONUtils.h Removed: ################################################################################ diff --git a/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py b/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py index 9aab7ca3293db..65c931210d400 100644 --- a/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py +++ b/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py @@ -128,8 +128,8 @@ def test_runInTerminalInvalidTarget(self): ) self.assertFalse(response["success"]) self.assertIn( - "Could not create a target for a program 'INVALIDPROGRAM': 'INVALIDPROGRAM' does not exist", - response["message"], + "'INVALIDPROGRAM' does not exist", + response["body"]["error"]["format"], ) @skipIfWindows diff --git a/lldb/tools/lldb-dap/JSONUtils.cpp b/lldb/tools/lldb-dap/JSONUtils.cpp index dcc25c9212432..c9c6f4554c325 100644 --- a/lldb/tools/lldb-dap/JSONUtils.cpp +++ b/lldb/tools/lldb-dap/JSONUtils.cpp @@ -1335,7 +1335,7 @@ llvm::json::Value CreateCompileUnit(lldb::SBCompileUnit &unit) { /// https://microsoft.github.io/debug-adapter-protocol/specification#Reverse_Requests_RunInTerminal llvm::json::Object CreateRunInTerminalReverseRequest( llvm::StringRef program, const std::vector<std::string> &args, - const llvm::StringMap<std::string> env, llvm::StringRef cwd, + const llvm::StringMap<std::string> &env, llvm::StringRef cwd, llvm::StringRef comm_file, lldb::pid_t debugger_pid) { llvm::json::Object run_in_terminal_args; // This indicates the IDE to open an embedded terminal, instead of opening @@ -1352,7 +1352,7 @@ llvm::json::Object CreateRunInTerminalReverseRequest( req_args.push_back("--launch-target"); req_args.push_back(program.str()); req_args.insert(req_args.end(), args.begin(), args.end()); - run_in_terminal_args.try_emplace("args", args); + run_in_terminal_args.try_emplace("args", req_args); if (!cwd.empty()) run_in_terminal_args.try_emplace("cwd", cwd); diff --git a/lldb/tools/lldb-dap/JSONUtils.h b/lldb/tools/lldb-dap/JSONUtils.h index ac9b39739104f..5758c3d56ec90 100644 --- a/lldb/tools/lldb-dap/JSONUtils.h +++ b/lldb/tools/lldb-dap/JSONUtils.h @@ -544,7 +544,7 @@ llvm::json::Value CreateCompileUnit(lldb::SBCompileUnit &unit); /// Microsoft. llvm::json::Object CreateRunInTerminalReverseRequest( llvm::StringRef program, const std::vector<std::string> &args, - const llvm::StringMap<std::string> env, llvm::StringRef cwd, + const llvm::StringMap<std::string> &env, llvm::StringRef cwd, llvm::StringRef comm_file, lldb::pid_t debugger_pid); /// Create a "Terminated" JSON object that contains statistics _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits