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
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. 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.