Skip site navigation (1)Skip section navigation (2)
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>