[Dwarf-discuss] Curiosity: Multiple Unwind Paths?

Eleanor Bartle eleanor@eleanor-nb.com
Thu Dec 28 02:55:13 GMT 2023


Everything I know about unwind info seems to suggest only a single previous frame can be referenced (the single CFA in particular). However, in languages with coroutines, there could potentially be two "previous" frames: the procedure it will yield to, and the coroutine awaiting on it. Zig in particular has stackless coroutines, and the primary specification writer once talked about making the coroutine context object a "stack" internally, then storing a pointer into this stack in the frame pointer register so unwinding would give the call sequence of coroutines.

I was wondering, is there a way within the current DWARF specification to capture this graph bifurcation? It seems strange to me that DWARF is so incredibly flexible and adaptable, yet this one thing is beyond that reach. Would we really have to generate two sets of tables? Is that even possible without breaking all the tools?

Obviously this is a low-priority message.
Eleanor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dwarfstd.org/pipermail/dwarf-discuss/attachments/20231228/dc42304b/attachment.htm>


More information about the Dwarf-discuss mailing list