aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Utility/StringExtractorGDBRemote.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2022-05-11 15:10:16 -0700
committerJim Ingham <jingham@apple.com>2022-05-18 10:16:11 -0700
commitbff4673b41781ec5bff6b96b52cf321d2271726c (patch)
tree4a259e5663ec63d18d551c8eaad64b2848702c33 /lldb/source/Utility/StringExtractorGDBRemote.cpp
parentececce1b5ec1a83434568591e4c18ac79e4f3631 (diff)
downloadllvm-bff4673b41781ec5bff6b96b52cf321d2271726c.zip
llvm-bff4673b41781ec5bff6b96b52cf321d2271726c.tar.gz
llvm-bff4673b41781ec5bff6b96b52cf321d2271726c.tar.bz2
Add a darwin platform setting to specify which exceptions debugserver
should not receive as exceptions (some will get converted to BSD signals instead). This is really the only stable way to ensure that a Mach exception gets converted to it's equivalent BSD signal. For programs that rely on BSD signal handlers, this has to happen or you can't even get the program to invoke the signal handler when under the debugger. This builds on a previous solution to this problem which required you start debugserver with the -U flag. This was not very discoverable and required lldb be the one to launch debugserver, which is not always the case. Differential Revision: https://reviews.llvm.org/D125434
Diffstat (limited to 'lldb/source/Utility/StringExtractorGDBRemote.cpp')
-rw-r--r--lldb/source/Utility/StringExtractorGDBRemote.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lldb/source/Utility/StringExtractorGDBRemote.cpp b/lldb/source/Utility/StringExtractorGDBRemote.cpp
index d6bbf71..f1e54b3 100644
--- a/lldb/source/Utility/StringExtractorGDBRemote.cpp
+++ b/lldb/source/Utility/StringExtractorGDBRemote.cpp
@@ -126,6 +126,8 @@ StringExtractorGDBRemote::GetServerPacketType() const {
return eServerPacketType_QSetWorkingDir;
if (PACKET_STARTS_WITH("QSetLogging:"))
return eServerPacketType_QSetLogging;
+ if (PACKET_STARTS_WITH("QSetIgnoredExceptions"))
+ return eServerPacketType_QSetIgnoredExceptions;
if (PACKET_STARTS_WITH("QSetMaxPacketSize:"))
return eServerPacketType_QSetMaxPacketSize;
if (PACKET_STARTS_WITH("QSetMaxPayloadSize:"))