diff options
author | Jim Ingham <jingham@apple.com> | 2022-05-11 15:10:16 -0700 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2022-05-18 10:16:11 -0700 |
commit | bff4673b41781ec5bff6b96b52cf321d2271726c (patch) | |
tree | 4a259e5663ec63d18d551c8eaad64b2848702c33 /lldb/source/Utility/StringExtractorGDBRemote.cpp | |
parent | ececce1b5ec1a83434568591e4c18ac79e4f3631 (diff) | |
download | llvm-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.cpp | 2 |
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:")) |