dyld: EXIDX location #17
Labels
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#17
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
Each entry in the EXIDX contains:
0x1
: EXIDX_CANTUNWIND.The first word is used for binary search for the exception handling entry of a function by its PC. The current dyld changes the relative position between the EXIDX and other parts of the ELF as the EXIDX is cloned to a vector. Hence, the unwinder would not be able to find the correct entry for the function.
Fix: either preserve the original position of the EXIDX section, or recompute the offset for the PC.
References:
@astro
Loading it into the
Image
sounds like the most logical solution.In this sample
EXIDX
overlaps with a load segment. Seems it is to be loaded already and we just have to keep the address.