Date: Sun, 29 Dec 2013 14:28:44 -0500 From: Mark Johnston <markj@freebsd.org> To: Prashanth Kumar <pra_udupi@yahoo.co.in> Cc: freebsd-dtrace@freebsd.org Subject: Re: Please review: dtrace usdt Message-ID: <20131229192844.GA8721@charmander.home> In-Reply-To: <1387107019.65592.YahooMailBasic@web192601.mail.sg3.yahoo.com> References: <CAHfNqiDmAFPF%2BafzQfTfwTQn7M8g8RxrHNd9BcLWV0_ko19GNw@mail.gmail.com> <1387107019.65592.YahooMailBasic@web192601.mail.sg3.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Dec 15, 2013 at 07:30:19PM +0800, Prashanth Kumar wrote: > > Dtrace doesn't properly process object file of relocation type SHT_REL, which is type > in FreeBSD i386. The following patch checks for both relocation types SHT_REL and SHT_RELA, and > calls matching update function.Tested usdt example program from (https://wiki.freebsd.org/DTrace/userland) > in FreeBSD -10BETA1 - i386 and it works. Hi Prashanth, Thanks for the patch. I've committed a modified version of it as r260051: http://svnweb.freebsd.org/base?view=revision&revision=260051 -Mark > -------------------------------------------------- > --- dt_link.c 2013-12-15 14:24:37.000000000 +0400 > +++ /usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c 2013-12-15 14:22:21.000000000 +0400 > @@ -1542,7 +1542,10 @@ > rela.r_offset = 0; > rela.r_info = 0; > rela.r_addend = 0; > - (void) gelf_update_rela(data_rel, i, &rela); > + if (shdr_rel.sh_type == SHT_RELA) > + (void) gelf_update_rela(data_rel, i, &rela); > + else > + (void) gelf_update_rel(data_rel, i, (GElf_Rel *)&rela); > #endif > > mod = 1; > ----------------------------------------------------------- > > prashanth > -------------------------------------------- > On Wed, 4/12/13, Michael Harsch <michaelharsch@hotmail.com> wrote: > > Subject: Re: dtrace usdt > To: "Prashanth Kumar" <pra_udupi@yahoo.co.in> > Cc: freebsd-dtrace@freebsd.org > Date: Wednesday, 4 December, 2013, 11:13 PM > > Hi Prashanth, > > I've reproduced this on 10.0BETA4. It appears to be > specific to i386; > the same test works fine on amd64. > > On Wed, Dec 4, 2013 at 3:29 AM, Prashanth Kumar <pra_udupi@yahoo.co.in> > wrote: > > Hi > > Tried running the dtrace usdt example code from freebsd > dtrace userland wiki page. > > (https://wiki.freebsd.org/DTrace/userland). > > > > If run standalone the program segfaults. > > # ./db > > Bus error (core dumped) > > > > If run with dtrace > > > > # dtrace -s db.d -c ./db > > dtrace: script 'db.d' matched 2 probes > > CPU ID > > FUNCTION:NAME > > 0 43245 > > main:query-start Query: SELECT * FROM > apples > > > > the program hungs after printing the first probe. > > > > Had to use the following command > > # env WITH_DTRACE=1 make > > > > to build the program. Is there any other steps that i > have missed to make the program work?. > > This was tested on FreeBSD 10BETA1 - i386. > > > > regards > > Prashanth > > _______________________________________________ > > freebsd-dtrace@freebsd.org > mailing list > > https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace > > To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe@freebsd.org" > > > > _______________________________________________ > freebsd-dtrace@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace > To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131229192844.GA8721>