[Lldb-commits] [PATCH] D136295: Fix exception description in lldb-vscode
jeffrey tan via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Oct 20 15:17:48 PDT 2022
yinghuitan updated this revision to Diff 469376.
yinghuitan added a comment.
Fix comment
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136295/new/
https://reviews.llvm.org/D136295
Files:
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
lldb/test/API/tools/lldb-vscode/exception/Makefile
lldb/test/API/tools/lldb-vscode/exception/TestVSCode_exception.py
lldb/test/API/tools/lldb-vscode/exception/main.cpp
lldb/tools/lldb-vscode/JSONUtils.cpp
Index: lldb/tools/lldb-vscode/JSONUtils.cpp
===================================================================
--- lldb/tools/lldb-vscode/JSONUtils.cpp
+++ lldb/tools/lldb-vscode/JSONUtils.cpp
@@ -930,7 +930,7 @@
// If no description has been set, then set it to the default thread stopped
// description. If we have breakpoints that get hit and shouldn't be reported
// as breakpoints, then they will set the description above.
- if (ObjectContainsKey(body, "description")) {
+ if (!ObjectContainsKey(body, "description")) {
char description[1024];
if (thread.GetStopDescription(description, sizeof(description))) {
EmplaceSafeString(body, "description", std::string(description));
Index: lldb/test/API/tools/lldb-vscode/exception/main.cpp
===================================================================
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/exception/main.cpp
@@ -0,0 +1,6 @@
+#include <signal.h>
+
+int main() {
+ raise(SIGABRT);
+ return 0;
+}
Index: lldb/test/API/tools/lldb-vscode/exception/TestVSCode_exception.py
===================================================================
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/exception/TestVSCode_exception.py
@@ -0,0 +1,24 @@
+"""
+Test exception behavior in VSCode
+"""
+
+
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+import lldbvscode_testcase
+
+
+class TestVSCode_exception(lldbvscode_testcase.VSCodeTestCaseBase):
+
+ @skipIfWindows
+ def test_stopped_description(self):
+ '''
+ Test that exception description is shown correctly in stopped
+ event.
+ '''
+ program = self.getBuildArtifact("a.out")
+ print("test_stopped_description called", flush=True)
+ self.build_and_launch(program)
+
+ self.vscode.request_continue()
+ self.assertTrue(self.verify_stop_exception_info("signal SIGABRT"))
Index: lldb/test/API/tools/lldb-vscode/exception/Makefile
===================================================================
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/exception/Makefile
@@ -0,0 +1,3 @@
+CXX_SOURCES := main.cpp
+
+include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
@@ -93,10 +93,10 @@
return
self.assertTrue(False, "breakpoint not hit")
- def verify_exception_breakpoint_hit(self, filter_label):
+ def verify_stop_exception_info(self, expected_description):
'''Wait for the process we are debugging to stop, and verify the stop
reason is 'exception' and that the description matches
- 'filter_label'
+ 'expected_description'
'''
stopped_events = self.vscode.wait_for_stopped()
for stopped_event in stopped_events:
@@ -109,7 +109,7 @@
if 'description' not in body:
continue
description = body['description']
- if filter_label == description:
+ if expected_description == description:
return True
return False
@@ -236,7 +236,7 @@
def continue_to_exception_breakpoint(self, filter_label):
self.vscode.request_continue()
- self.assertTrue(self.verify_exception_breakpoint_hit(filter_label),
+ self.assertTrue(self.verify_stop_exception_info(filter_label),
'verify we got "%s"' % (filter_label))
def continue_to_exit(self, exitCode=0):
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136295.469376.patch
Type: text/x-patch
Size: 3752 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20221020/dbdf6bb3/attachment-0001.bin>
More information about the lldb-commits
mailing list