Author: Jim Ingham Date: 2023-06-01T10:20:47-07:00 New Revision: 620dc1224ff9e4cb86e6e4d8e7c3941fc921887d
URL: https://github.com/llvm/llvm-project/commit/620dc1224ff9e4cb86e6e4d8e7c3941fc921887d DIFF: https://github.com/llvm/llvm-project/commit/620dc1224ff9e4cb86e6e4d8e7c3941fc921887d.diff LOG: Add EXC_SYSCALL to the set of ignorable mach exceptions. Add some more tests of what exceptions we accept and don't accept. Differential Revision: https://reviews.llvm.org/D151843 Added: Modified: lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp lldb/test/API/macosx/ignore_exceptions/TestIgnoredExceptions.py Removed: ################################################################################ diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp index 60327fbe3124f..f3f0fd7de3751 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp @@ -63,7 +63,8 @@ static Status ExceptionMaskValidator(const char *string, void *unused) { || candidate == "EXC_BAD_INSTRUCTION" || candidate == "EXC_ARITHMETIC" || candidate == "EXC_RESOURCE" - || candidate == "EXC_GUARD")) { + || candidate == "EXC_GUARD" + || candidate == "EXC_SYSCALL")) { error.SetErrorStringWithFormat("invalid exception type: '%s'", candidate.str().c_str()); return error; diff --git a/lldb/test/API/macosx/ignore_exceptions/TestIgnoredExceptions.py b/lldb/test/API/macosx/ignore_exceptions/TestIgnoredExceptions.py index 677e6315123fc..429f1dbb1beba 100644 --- a/lldb/test/API/macosx/ignore_exceptions/TestIgnoredExceptions.py +++ b/lldb/test/API/macosx/ignore_exceptions/TestIgnoredExceptions.py @@ -30,10 +30,22 @@ def suspended_thread_test(self): "EXC_BAD_AXESS", error=True, ) - # Now set ourselves to ignore some exceptions. The test depends on ignoring EXC_BAD_ACCESS, but I passed a couple - # to make sure they parse: + # Make sure that we don't accept exceptions that lldb/debugserver need: + self.match( + "settings set platform.plugin.darwin.ignored-exceptions EXC_BREAKPOINT", + "EXC_BREAKPOINT", + error=True, + ) + # Make sure that we don't accept exceptions that lldb/debugserver need: + self.match( + "settings set platform.plugin.darwin.ignored-exceptions EXC_SOFT_SIGNAL", + "EXC_SOFT_SIGNAL", + error=True, + ) + # Now set ourselves to ignore some exceptions. The test depends on ignoring EXC_BAD_ACCESS, but I passed all the + # ones we currently accept to make sure they parse: self.runCmd( - "settings set platform.plugin.darwin.ignored-exceptions EXC_BAD_ACCESS|EXC_ARITHMETIC" + "settings set platform.plugin.darwin.ignored-exceptions EXC_BAD_ACCESS|EXC_BAD_INSTRUCTION|EXC_ARITHMETIC|EXC_RESOURCE|EXC_GUARD|EXC_SYSCALL" ) (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( self, "Stop here to get things going", self.main_source_file _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits