Page MenuHomeFreeBSD

arm64: Mask non-debug exceptions when single stepping
ClosedPublic

Authored by andrew on Mar 14 2024, 3:19 PM.
Tags
None
Referenced Files
F85458123: D44350.id.diff
Thu, Jun 6, 9:35 AM
Unknown Object (File)
Tue, Jun 4, 3:22 PM
Unknown Object (File)
Thu, May 30, 9:43 PM
Unknown Object (File)
Mon, May 27, 2:43 AM
Unknown Object (File)
Sun, May 26, 5:37 PM
Unknown Object (File)
Thu, May 23, 3:17 PM
Unknown Object (File)
Wed, May 8, 2:54 AM
Unknown Object (File)
Apr 30 2024, 9:42 PM
Subscribers

Details

Summary

When an exception is pending when single stepping we may extern the
handler for that exception rather than the single step handler. This
could cause the scheduler to fire to run a new thread. This will mean
we single step to a new thread causing unexpected results.

Handle this by masking non-debug exceptions. This will cause issues
when stepping over instructions that access the DAIF values so future
work is needed to handle these cases, but for most code this now works
as excpeted.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 56595
Build 53483: arc lint + arc unit