On Mon, 7 Aug 2017, Michael Matz wrote: > > I am looking for a run-time test which breaks unwinder. > > I don't have one handy. Idea: make two threads, one endlessly looping in > the "frame-less" function, the other causing a signal to the first thread, > and the signal handler checking that unwinding up to caller of > frame_less() is possible via %[er]bp chaining.
You'd probably have to arrange frame_less modify %rbp, otherwise unwinding might "appear to work" by virtue of %rbp being valid for the outer frame. I think one specific, real-life use case that may be potentially hurt by this change is using linux-perf with backtrace recording, for programs with hot functions that don't otherwise access the stack (which is plausible for leaf functions with hot loops). Alexander