What is wrong with dtrace's stack()?
Lev Serebryakov
lev at FreeBSD.org
Wed Oct 24 17:26:36 UTC 2018
On 24.10.2018 20:14, Ryan Stone wrote:
> ia32_pause() is an inline function. How does dtrace map instruction
> pointers to symbol names? Is it getting that mapping from some CTF
> data, and is that CTF data aware of inline functions?
It looks like plausable explanation, but why sometimes it pick-up
"middle layer" like this:
kernel`ia32_pause+0x6
kernel`tcp_usr_send+0x131
kernel`sosend_generic+0xf61
And sometimes doesn't:
kernel`ia32_pause+0x7
kernel`sosend_generic+0xf61
As I said, these stacks are equivalent, I've proved it (ok, it is not
mathematical proof, of course) with custom SDT probes around this
"`tcp_usr_send+0x131" place.
--
// Lev Serebryakov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20181024/9a2a5a1b/attachment.sig>
More information about the freebsd-hackers
mailing list