Source-Level Debugging of Compiler-Optimised Code: Ill-Posed, but Not Impossible, https://dl.acm.org/doi/10.1145/3689492.3690047. There's almost no research in this area so it's good to see someone thinking about some of the challenges. I'd like to have seen a discussion of undefined behavior, specifically, since there's a paradox where C programmers are most likely to use debuggers exactly in cases where UB is present, which poses fundamental challenges to source-level debugging.
@pervognsen I believe @stephenrkell and @jryans continue on this work.

@smarr Thanks! Yes, more stuff to appear (preprint of our new OOPSLA paper coming soon)!

@pervognsen Yes. Nice observation! It's true that UB is by definition a departure from source semantics, and can be witnessed at debug time. We have thought a bit about using source-level executable semantics for testing and synthesis of debug info, but I think you've made a case for also using them at debug time to flag the effects of executing through UB. That would be neat! I will think.

cc @jryans