summaryrefslogtreecommitdiffstats
path: root/cddl/contrib/opensolaris/lib/libdtrace
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2013-04-25 07:04:56 +0000
committeravg <avg@FreeBSD.org>2013-04-25 07:04:56 +0000
commit8fa43243969eb2755f88d0f95597970608b69594 (patch)
tree05283829e4188e0a7f6e47b512695541f034f7d3 /cddl/contrib/opensolaris/lib/libdtrace
parentedefb5410f10c43a2d7f973cf61637076c20e494 (diff)
downloadFreeBSD-src-8fa43243969eb2755f88d0f95597970608b69594.zip
FreeBSD-src-8fa43243969eb2755f88d0f95597970608b69594.tar.gz
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
Diffstat (limited to 'cddl/contrib/opensolaris/lib/libdtrace')
-rw-r--r--cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
index 6c6e41b..dcc4e7c 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
@@ -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;
OpenPOWER on IntegriCloud