malformed symbol

Mark Johnston markj at FreeBSD.org
Tue Dec 20 18:28:24 UTC 2016


On Tue, Dec 20, 2016 at 04:32:29AM +0900, Hiroki Sato wrote:
> Mark Johnston <markj at FreeBSD.org> wrote
>   in <20161219005342.GA57753 at 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.


More information about the freebsd-dtrace mailing list