Date: Thu, 25 Apr 2013 07:04:57 +0000 (UTC) From: Andriy Gapon <avg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r249884 - head/cddl/contrib/opensolaris/lib/libdtrace/common Message-ID: <201304250704.r3P74v3N040089@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: avg Date: Thu Apr 25 07:04:56 2013 New Revision: 249884 URL: http://svnweb.freebsd.org/changeset/base/249884 Log: revert r248644 because of the regression for usdt probes USDT probes are advertised to kernel by initialization code with atrribute((constructor))). It seems that on Solaris the .init-ish code of the main object is executed before RD_PREINIT point is hit. On FreeBSD that is not the case. And because on FreeBSD there is no other well-defined point between RD_PREINIT and main() we have to parse a DTrace script when main is hit, for time being. A footnote: currently we actually post RD_POSTINIT event, but that's a bug because the event is triggered by hitting r_debug_state which happens before any init code is executed. Reported by: markj Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Thu Apr 25 06:55:57 2013 (r249883) +++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Thu Apr 25 07:04:56 2013 (r249884) @@ -1130,7 +1130,7 @@ alloc: #if defined(sun) dtp->dt_prcmode = DT_PROC_STOP_PREINIT; #else - dtp->dt_prcmode = DT_PROC_STOP_POSTINIT; + dtp->dt_prcmode = DT_PROC_STOP_MAIN; #endif dtp->dt_linkmode = DT_LINK_KERNEL; dtp->dt_linktype = DT_LTYP_ELF;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304250704.r3P74v3N040089>