On Wed, May 20, 2015 at 11:25:37AM -0500, Josh Poimboeuf wrote: > > I've never quite understood what the '?' means. > > It basically means "here's a function address we found on the stack, > which may or may not have been called." It's needed because stack > walking isn't currently 100% reliable. Yeah, that was not that trivial to figure out at the time: unsigned long print_context_stack(struct thread_info *tinfo, ... if (__kernel_text_address(addr)) { if ((unsigned long) stack == bp + sizeof(long)) { ops->address(data, addr, 1); frame = frame->next_frame; bp = (unsigned long) frame; } else { ops->address(data, addr, 0); } and that ops->address is print_trace_address() |-> printk_stack_address() So if I'm understanding this correctly, if rBP+8 is equal to rSP, i.e. return address is on the stack, then this frame got called. Otherwise -> "?". I might be missing something though... -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html