Hello,
This patch adds frame sniffers (name stolen from other sniffer code) to the frame code. Unlike the existing frame predicate methods that take a PC parameter, these take a full NEXT_FRAME. It leaves the old frame predicates alone (making this safe for the branch).
I figure that should be enough to keep any unwinder, trying to decide if the frame is good, happy :-)
I'll look to commit this to both the trunk and 6.0 branch early next week. I'll then follow up with patches to:
- rips out the old predicate methods (mainline only)
- replace the dwarf2 predicate with a dwarf2 sniffer
Will apply to mainline and branch. Should fix weird edge case where a function has no cfi but is doing a tail call to a no-return function, but the code following the function does have CFI.
- (I guess) something to work around the dwarf2 unwind info (need to look at Mark's old code)
I've so far tested it on a RH9 system (with the sniffer enabled) and it hasn't shown a sign of regressing.
Can anyone point me at testcases that will magically start passing with this fixed?