Wicked; the location code, in particular, is sick. As you've noticed, this isn't rocket science; and good language choice does make life easier. Several things to consider. Rather than frame-base, I'd use CFA or call-frame-address found in .debug_frame or CFI when identifying frames (and determining if the frame changed such as for step). In addition, since frameless functions don't modify the CFA (they don't use the stack) you'll want to be combining it with the function's address giving a FrameIdentifier (oh, and IA-64 has two stacks so ... :-) The unwinder looks to be trying to simultaneously handle both high-level inline and low-level ABI (CFA) frames, an alternative approach is to keep them separate (decorator pattern works well here) having an abi-only chain and then above that a chain of higher-level possibly inline frames. A non-polling implementation would make a long term goal - which requires a mechanism for simultaneously blocking on both process and i/o events - on linux, at least, this is still a rats nest of bugs.Received on Wed Sep 16 2009 - 19:25:05 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:55 UTC