Please review: dtrace usdt
Mark Johnston
markj at freebsd.org
Sun Dec 29 19:29:28 UTC 2013
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 at hotmail.com> wrote:
>
> Subject: Re: dtrace usdt
> To: "Prashanth Kumar" <pra_udupi at yahoo.co.in>
> Cc: freebsd-dtrace at 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 at 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 at freebsd.org
> mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace
> > To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe at freebsd.org"
> >
>
> _______________________________________________
> freebsd-dtrace at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace
> To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe at freebsd.org"
More information about the freebsd-dtrace
mailing list