Date: Sat, 27 Oct 2018 18:53:46 -0400 From: Mark Johnston <markj@freebsd.org> To: Andreas Longwitz <longwitz@incore.de> Cc: "freebsd-dtrace@freebsd.org" <freebsd-dtrace@freebsd.org> Subject: Re: Why my DTrace script does not work after installing a new kernel without reboot Message-ID: <20181027225339.GA4191@spy> In-Reply-To: <5BD4E965.9040006@incore.de> References: <5BD4E965.9040006@incore.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Oct 28, 2018 at 12:40:37AM +0200, Andreas Longwitz wrote: > I have a simple, probably stupid question. I run FreeBSD 10.4 Stable > r338093 and use the script > > #!/usr/sbin/dtrace -s > > dtrace:::BEGIN > { > printf("pf_default_rule.timeout[2/16/17]=%d/%d/%d\n", > kernel`pf_default_rule.timeout[2], kernel`pf_default_rule.timeout[16], > kernel`pf_default_rule.timeout[17]); > } > > The output normally is > pf_default_rule.timeout[2/16/17]=86400/6000/12000 > > But when I change the sourcefile /sys/netpfil/pf/pf.c trying a patch and > build and install the new kernel but without reboot, then the output of > the script is wrong: > > pf_default_rule.timeout[2/16/17]=3237216124/0/0 > > After reboot everything works again. Does your patch change the layout of the timeout structure? If so, the problem is that dtrace(1) is using the CTF from kern.bootfile, but that doesn't match the layout of the structures used by the running kernel.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20181027225339.GA4191>