This is an archive of the discontinued LLVM Phabricator instance.

Add EXC_SYSCALL to the allowable ignored exceptions for Darwin
ClosedPublic

Authored by jingham on May 31 2023, 3:28 PM.

Details

Summary

EXC_SYSCALL has the same problem as EXC_BAD_INSTRUCTION and EXC_BAD_ACCESS, they all should get turned into BSD signals when forwarded to the host port, but lldb isn't allowed to do that from the outside. So the only way to get that to happen is to have debugserver not listen for them. I overlooked them when originally adding the ignored-exception setting. I added some tests to make sure we accept the ones we accept and don't accept the ones we shouldn't - because lldb needs them to operate.

I didn't add an end-to-end test for EXC_SYSCALL because it's actually quite hard to get the kernel to generate this exception - most of the time is goes straight to a SIGSYS.

Diff Detail

Event Timeline

jingham created this revision.May 31 2023, 3:28 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 31 2023, 3:28 PM
jingham requested review of this revision.May 31 2023, 3:28 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 31 2023, 3:28 PM
This revision was not accepted when it landed; it landed in state Needs Review.Jun 1 2023, 10:21 AM
This revision was automatically updated to reflect the committed changes.
mib added a comment.Jun 1 2023, 11:10 AM

LGTM! Sorry I didn't look at this earlier...