svn commit: r249884 - head/cddl/contrib/opensolaris/lib/libdtrace/common

Andriy Gapon avg at FreeBSD.org
Thu Apr 25 07:04:57 UTC 2013


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;


More information about the svn-src-head mailing list