From: Josh Poimboeuf > Sent: 14 June 2019 18:07 ... > > I do remember a stack trace printer for x86 this didn't need > > any annotation of the object code and didn't need frame pointers. > > The only downside was that it had to 'guess' (ie scan the stack) > > to get out of functions that couldn't return. > > Basically it followed the control flow forwards tracking the > > values of %sp and %bp until it found a return instuction. > > All it has to do is detect loops and retry from the other > > target of conditional branches. > > That actually sounds kind of cool, though I don't think we need that for > the kernel. No reason why not. It would save most of the instrumentation the orc unwinder needs. It isn't as though the performance of kernel tracebacks is that important (printf and symbol lookup probably always dominates). The only difficulty for x86 is quickly determining the size of instructions. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)