Date: Tue, 20 Dec 2016 10:34:16 -0800 From: Mark Johnston <markj@FreeBSD.org> To: Hiroki Sato <hrs@FreeBSD.org> Cc: rm@joyent.com, freebsd-dtrace@freebsd.org, swills@FreeBSD.org Subject: Re: malformed symbol Message-ID: <20161220183416.GA58737@wkstn-mjohnston.west.isilon.com> In-Reply-To: <20161220.043229.1880233551388576235.hrs@allbsd.org> References: <20161215.075124.1459885758696268380.hrs@allbsd.org> <6b0842f5-46e8-e90e-0cc6-ec0cbe74669a@joyent.com> <20161219005342.GA57753@wkstn-mjohnston.west.isilon.com> <20161220.043229.1880233551388576235.hrs@allbsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Dec 20, 2016 at 04:32:29AM +0900, Hiroki Sato wrote: > Mark Johnston <markj@FreeBSD.org> wrote > in <20161219005342.GA57753@wkstn-mjohnston.west.isilon.com>: > > ma> On Wed, Dec 14, 2016 at 02:56:12PM -0800, Robert Mustacchi wrote: > ma> > On 12/14/16 14:51 , Hiroki Sato wrote: > ma> > > This was reproducible on 11.x and 12.x, not on 10.x. Could anyone > ma> > > try this and let me know if this is reproducible on your 11.x or 12.x > ma> > > box? I guess this is a regression of symbol rewrite routine such as > ma> > > s/__/-/ in the dtrace utility while I have not investigated the > ma> > > details yet. Or am I missing something here? > ma> > > ma> > We've seen something similar on illumos that corresponds with newer > ma> > binutils versions (2.26). See https://www.illumos.org/issues/6653. > ma> > ma> I wrote a hacky patch[1] which modifies libdtrace such that it appends > ma> the modified symbol name to the strtab instead of modifying the original > ma> name, and updates the symbol to point to the new entry. It seems to > ma> address the issue. > ma> > ma> I then wondered why we update the strtab in the first place. The code > ma> uses the modified string to look up the probe corresponding to the > ma> relocation that designates the probe site. Why can't we copy the symbol > ma> name to a buffer, call strhyphenate() on that, and use it for the lookup > ma> instead? Once the probe sites are recorded in the DOF, we shouldn't care > ma> about the symbol name. I implemented this too[2] and haven't hit any > ma> problems with some quick testing. > ma> > ma> [1] https://people.freebsd.org/~markj/patches/libdtrace_symname_swizzle.diff > ma> [2] https://people.freebsd.org/~markj/patches/libdtrace_symname_swizzle2.diff > > Thank you. I tried [2] and it worked well. If it has no regression > it looks better to me. Thanks! I committed a modified version of [2] as r310332.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161220183416.GA58737>