llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Ebuka Ezike (da-viper) <details> <summary>Changes</summary> The terminate commands should only run when a debug session ends. Fixes https://github.com/llvm/llvm-project/issues/194670 --- Full diff: https://github.com/llvm/llvm-project/pull/200829.diff 3 Files Affected: - (modified) lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py (+2) - (modified) lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_commands.py (+2) - (modified) lldb/tools/lldb-dap/DAP.cpp (+1-2) ``````````diff diff --git a/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py b/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py index 056e213a6fc81..80ebfc451dfe3 100644 --- a/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py +++ b/lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py @@ -58,6 +58,7 @@ def test_commands(self): exitCommands=exitCommands, terminateCommands=terminateCommands, postRunCommands=postRunCommands, + disconnectAutomatically=False, ) self.dap_server.wait_for_initialized() # Get output from the console. This should contain both the @@ -89,6 +90,7 @@ def test_commands(self): # Continue until the program exits self.continue_to_exit() + self.dap_server.request_disconnect(terminateDebuggee=True) # Get output from the console. This should contain both the # "exitCommands" that were run after the second breakpoint was hit # and the "terminateCommands" due to the debugging session ending diff --git a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_commands.py b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_commands.py index 48398e5915069..a47212b548a06 100644 --- a/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_commands.py +++ b/lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_commands.py @@ -42,6 +42,7 @@ def test(self): stopCommands=stopCommands, exitCommands=exitCommands, terminateCommands=terminateCommands, + disconnectAutomatically=False, ) self.dap_server.wait_for_initialized() @@ -83,6 +84,7 @@ def test(self): # Continue until the program exits self.continue_to_exit() + self.dap_server.request_disconnect(terminateDebuggee=True) # Get output from the console. This should contain both the # "exitCommands" that were run after the second breakpoint was hit # and the "terminateCommands" due to the debugging session ending diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp index cb34c7b2fd1e8..c4647c01494b1 100644 --- a/lldb/tools/lldb-dap/DAP.cpp +++ b/lldb/tools/lldb-dap/DAP.cpp @@ -891,8 +891,6 @@ bool DAP::HandleObject(const Message &M) { void DAP::SendTerminatedEvent() { // Prevent races if the process exits while we're being asked to disconnect. llvm::call_once(terminated_event_flag, [&] { - RunTerminateCommands(); - // Send a "terminated" event llvm::json::Object event(CreateTerminatedEventObject(target)); SendJSON(llvm::json::Value(std::move(event))); }); @@ -924,6 +922,7 @@ llvm::Error DAP::Disconnect(bool terminateDebuggee) { } } + RunTerminateCommands(); SendTerminatedEvent(); TerminateLoop(); return ToError(error); `````````` </details> https://github.com/llvm/llvm-project/pull/200829 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
