[Bug 282445] Wrong stack() info in dtrace
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 282445] Wrong stack() info in dtrace"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 31 Oct 2024 13:27:45 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282445 Mark Johnston <markj@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markj@FreeBSD.org Status|New |Open --- Comment #1 from Mark Johnston <markj@FreeBSD.org> --- Could you please explain further why you think the value is incorrect? I see that the instruction in each case is the instruction *after* the call instruction which leads to the next frame in the stack, which is an artifact of the way stack unwinding is handled. For example, if I trace something going through fork_trampoline(), the line referenced by the stack frame is 1157 if (p->p_flag & P_KPROC) { which is the next line of code after the function call. On x86 this is probably not too easy to fix because the unwinder doesn't know where instruction boundaries are. We could just subtract 1 from the return address and use that, but that'd be a bit weird. > Because the pure hash value seems to be okay. What do you mean by this? -- You are receiving this mail because: You are the assignee for the bug.