Mark Johnston <[email protected]> wrote in <[email protected]>:
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. -- Hiroki
pgpzLkd6E0RtU.pgp
Description: PGP signature
