
#11353: DWARF call frame information incorrect in the presence of unsafe foreign calls -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 7.10.3 (CodeGen) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: x86_64 Type of failure: Debugging | (amd64) information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: #11338, #11337 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by scpmw): Not sure why you are worrying about the order - that gets derived from the NCG output using cmmDebugLink. This is precisely so NCG is free to do whatever it wants with blocks, even reorder or optimise them out. My first impulse here would be that you will need some sort of `UNWIND` anyway to have NCG create labels. So maybe have it carry its unwind rules, that would allow NCG to update it. In either case, you would feed that information back roughly the same way that currently `ngs_labels` gets threaded back to debug information generation. As `UNWIND` would carry unique labels, this could just be replacing the current `[Label]` block list with an an ordered `[(Label, [UnwindTable])]` debug label to unwind table map. Not sure - this is exactly the kind of complexity that I tried my best to avoid, so I haven't put a lot of thought into it. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11353#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler