Date: Mon, 22 Oct 2018 16:29:55 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: Lev Serebryakov <lev@FreeBSD.org> Cc: Alan Somers <asomers@freebsd.org>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, cse.cem@gmail.com Subject: Re: What is wrong with dtrace's stack()? Message-ID: <20181022132955.GB1809@zxy.spb.ru> In-Reply-To: <234d745d-37a9-9610-15b9-0f5cd5af21bf@FreeBSD.org> References: <170994671.20181021201021@serebryakov.spb.ru> <CAG6CVpVCe-8OVU%2BKEyAh8swFSAjRshNcNLN0tjAS3W8bZxyrTA@mail.gmail.com> <475670271.20181022003734@serebryakov.spb.ru> <CAOtMX2goztCYJXM72WNR711DEBEKAGk1zFHF=NpE4UiVAF2bAQ@mail.gmail.com> <234d745d-37a9-9610-15b9-0f5cd5af21bf@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 22, 2018 at 02:45:19PM +0300, Lev Serebryakov wrote:
> sosend() calls protocol-specific handler via function pointer, so it
> should be true call:
>
> CURVNET_SET(so->so_vnet);
> if (!SOLISTENING(so))
> error = so->so_proto->pr_usrreqs->pru_sosend(so, addr, uio,
> top, control, flags, td);
> else {
> m_freem(top);
> m_freem(control);
> error = ENOTCONN;
> }
> CURVNET_RESTORE();
> return (error);
>
> These frames MUST be here...
(kgdb) x/80i sosend
0xffffffff8054d6b0 <sosend>: push %rbp
0xffffffff8054d6b1 <sosend+1>: mov %rsp,%rbp
0xffffffff8054d6b4 <sosend+4>: mov 0x20(%rdi),%rax
0xffffffff8054d6b8 <sosend+8>: mov 0x58(%rax),%rax
0xffffffff8054d6bc <sosend+12>: mov 0x98(%rax),%rax
0xffffffff8054d6c3 <sosend+19>: pop %rbp
0xffffffff8054d6c4 <sosend+20>: jmpq *%rax
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20181022132955.GB1809>
