components/ruby/patches/08-ruby-dtrace-1.8.7.patch
author April Chin <april.chin@oracle.com>
Fri, 20 Dec 2013 13:51:55 -0800
branchs11u1-sru
changeset 2864 7d980597e334
parent 688 9333dc6e30ba
permissions -rw-r--r--
17884834 problem in UTILITY/RUBY 17905257 problem in UTILITY/RUBY
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
     1
diff -rupN ruby-1.8.7-p357.orig/common.mk ruby-1.8.7-p357/common.mk
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
     2
--- ruby-1.8.7-p357.orig/common.mk	2010-11-21 23:22:16.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
     3
+++ ruby-1.8.7-p357/common.mk	2012-01-23 14:50:29.502736000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     4
@@ -55,6 +55,7 @@ OBJS	      = array.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     5
 		string.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     6
 		struct.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     7
 		time.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     8
+		tracer.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     9
 		util.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    10
 		variable.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    11
 		version.$(OBJEXT) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    12
@@ -85,9 +86,9 @@ prog: $(PROGRAM) $(WPROGRAM)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    13
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    14
 miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) $(MINIOBJS) $(OBJS) $(DMYEXT)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    15
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    16
-$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    17
+$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(DTRACE_OBJS) $(SETUP) $(PREP)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    18
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    19
-$(LIBRUBY_A):	$(OBJS) $(DMYEXT) $(ARCHFILE)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    20
+$(LIBRUBY_A):	$(OBJS) $(DMYEXT) $(ARCHFILE) $(DTRACE_OBJS)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    21
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    22
 $(LIBRUBY_SO):	$(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    23
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    24
@@ -280,7 +281,7 @@ clear-installed-list:
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    25
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    26
 clean: clean-ext clean-local
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    27
 clean-local::
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    28
-	@$(RM) $(OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    29
+	@$(RM) $(OBJS) $(DTRACE_OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    30
 	@$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) $(ARCHFILE) .*.time
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    31
 	@$(RM) y.tab.c y.output
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    32
 clean-ext:
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
    33
diff -rupN ruby-1.8.7-p357.orig/configure.in ruby-1.8.7-p357/configure.in
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
    34
--- ruby-1.8.7-p357.orig/configure.in	2011-02-18 02:37:47.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
    35
+++ ruby-1.8.7-p357/configure.in	2012-01-23 14:50:29.513537000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    36
@@ -524,6 +524,11 @@ AC_CHECK_HEADERS(stdlib.h string.h unist
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    37
 		 sys/mkdev.h sys/utime.h netinet/in_systm.h float.h ieeefp.h pthread.h \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    38
 		 ucontext.h intrinsics.h time.h)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    39
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    40
+AC_CHECK_HEADER(sys/sdt.h)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    41
+if test "$ac_cv_header_sys_sdt_h" == "yes"; then
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    42
+	AC_DEFINE(HAVE_SDT_H)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    43
+fi
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    44
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    45
 dnl Check additional types.
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    46
 AC_CHECK_SIZEOF(rlim_t, 0, [
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    47
   #ifdef HAVE_SYS_TYPES_H
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    48
@@ -698,6 +703,18 @@ if test "$use_setreuid" = yes; then
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    49
     AC_DEFINE(USE_SETREUID)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    50
     AC_DEFINE(USE_SETREGID)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    51
 fi
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    52
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    53
+AC_ARG_ENABLE(dtrace,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    54
+	[  --enable-dtrace         enable DTrace support.],
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    55
+	[enable_dtrace=$enableval])
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    56
+if test "$enable_dtrace" == "yes" -a "$ac_cv_header_sys_sdt_h" == "yes"; then
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    57
+	AC_DEFINE(ENABLE_DTRACE)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    58
+	DTRACE_OBJS="dtrace.o"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    59
+else
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    60
+	DTRACE_OBJS=""
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    61
+fi
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    62
+AC_SUBST(DTRACE_OBJS)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    63
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    64
 AC_STRUCT_TIMEZONE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    65
 AC_CACHE_CHECK(for struct tm.tm_gmtoff, rb_cv_member_struct_tm_tm_gmtoff,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    66
   [AC_TRY_COMPILE([#include <time.h>],
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
    67
@@ -1207,7 +1224,7 @@ if test "$with_dln_a_out" != yes; then
542
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    68
 	 		       LDFLAGS="$LDFLAGS -Wl,-E"
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    69
 			   fi
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    70
 			else
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    71
-			   : ${LDSHARED='ld -G'}
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    72
+			   : ${LDSHARED='$(CC) -G'}
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    73
 			fi
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    74
 			rb_cv_dlopen=yes;;
d05c60b92101 6953975 libruby.so.1 links without using the compiler driver
Rich Burridge <rich.burridge@oracle.com>
parents: 199
diff changeset
    75
 	sunos*) 	: ${LDSHARED='ld -assert nodefinitions'}
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
    76
diff -rupN ruby-1.8.7-p357.orig/dtrace.d ruby-1.8.7-p357/dtrace.d
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
    77
--- ruby-1.8.7-p357.orig/dtrace.d	1969-12-31 16:00:00.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
    78
+++ ruby-1.8.7-p357/dtrace.d	2012-01-23 14:50:29.525158000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    79
@@ -0,0 +1,26 @@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    80
+/* -*- Mode: C -*- */
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    81
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    82
+provider ruby {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    83
+    probe function__entry(char*, char*, char*, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    84
+    probe function__return(char*, char*, char*, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    85
+    probe raise(char*, char*, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    86
+    probe rescue(char*, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    87
+    probe line(char*, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    88
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    89
+    /* gc probes */
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    90
+    probe gc__begin();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    91
+    probe gc__end();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    92
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    93
+    /* Some initial memory type probes */
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    94
+    probe object__create__start(char*, char*, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    95
+    probe object__create__done(char*, char*, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    96
+    probe object__free(char*);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    97
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    98
+    probe ruby__probe(char*, char*);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    99
+};
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   100
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   101
+#pragma D attributes Evolving/Evolving/Common provider ruby provider
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   102
+#pragma D attributes Private/Private/Common provider ruby module
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   103
+#pragma D attributes Private/Private/Common provider ruby function
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   104
+#pragma D attributes Evolving/Evolving/Common provider ruby name
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   105
+#pragma D attributes Evolving/Evolving/Common provider ruby args
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   106
diff -rupN ruby-1.8.7-p357.orig/dtrace.h ruby-1.8.7-p357/dtrace.h
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   107
--- ruby-1.8.7-p357.orig/dtrace.h	1969-12-31 16:00:00.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   108
+++ ruby-1.8.7-p357/dtrace.h	2012-01-23 14:50:29.531660000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   109
@@ -0,0 +1,85 @@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   110
+/*
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   111
+ * Generated by dtrace(1M).
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   112
+ */
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   113
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   114
+#ifndef	_DTRACE_H
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   115
+#define	_DTRACE_H
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   116
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   117
+#ifdef	__cplusplus
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   118
+extern "C" {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   119
+#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   120
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   121
+#define	RUBY_FUNCTION_ENTRY(arg0, arg1, arg2, arg3) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   122
+	__dtrace_ruby___function__entry(arg0, arg1, arg2, arg3)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   123
+#define	RUBY_FUNCTION_ENTRY_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   124
+	__dtraceenabled_ruby___function__entry()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   125
+#define	RUBY_FUNCTION_RETURN(arg0, arg1, arg2, arg3) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   126
+	__dtrace_ruby___function__return(arg0, arg1, arg2, arg3)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   127
+#define	RUBY_FUNCTION_RETURN_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   128
+	__dtraceenabled_ruby___function__return()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   129
+#define	RUBY_GC_BEGIN() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   130
+	__dtrace_ruby___gc__begin()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   131
+#define	RUBY_GC_BEGIN_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   132
+	__dtraceenabled_ruby___gc__begin()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   133
+#define	RUBY_GC_END() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   134
+	__dtrace_ruby___gc__end()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   135
+#define	RUBY_GC_END_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   136
+	__dtraceenabled_ruby___gc__end()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   137
+#define	RUBY_LINE(arg0, arg1) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   138
+	__dtrace_ruby___line(arg0, arg1)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   139
+#define	RUBY_LINE_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   140
+	__dtraceenabled_ruby___line()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   141
+#define	RUBY_OBJECT_CREATE_DONE(arg0, arg1, arg2) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   142
+	__dtrace_ruby___object__create__done(arg0, arg1, arg2)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   143
+#define	RUBY_OBJECT_CREATE_DONE_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   144
+	__dtraceenabled_ruby___object__create__done()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   145
+#define	RUBY_OBJECT_CREATE_START(arg0, arg1, arg2) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   146
+	__dtrace_ruby___object__create__start(arg0, arg1, arg2)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   147
+#define	RUBY_OBJECT_CREATE_START_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   148
+	__dtraceenabled_ruby___object__create__start()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   149
+#define	RUBY_OBJECT_FREE(arg0) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   150
+	__dtrace_ruby___object__free(arg0)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   151
+#define	RUBY_OBJECT_FREE_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   152
+	__dtraceenabled_ruby___object__free()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   153
+#define	RUBY_RAISE(arg0, arg1, arg2) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   154
+	__dtrace_ruby___raise(arg0, arg1, arg2)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   155
+#define	RUBY_RAISE_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   156
+	__dtraceenabled_ruby___raise()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   157
+#define	RUBY_RESCUE(arg0, arg1) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   158
+	__dtrace_ruby___rescue(arg0, arg1)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   159
+#define	RUBY_RESCUE_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   160
+	__dtraceenabled_ruby___rescue()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   161
+#define	RUBY_RUBY_PROBE(arg0, arg1) \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   162
+	__dtrace_ruby___ruby__probe(arg0, arg1)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   163
+#define	RUBY_RUBY_PROBE_ENABLED() \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   164
+	__dtraceenabled_ruby___ruby__probe()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   165
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   166
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   167
+extern void __dtrace_ruby___function__entry(char *, char *, char *, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   168
+extern int __dtraceenabled_ruby___function__entry(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   169
+extern void __dtrace_ruby___function__return(char *, char *, char *, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   170
+extern int __dtraceenabled_ruby___function__return(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   171
+extern void __dtrace_ruby___gc__begin(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   172
+extern int __dtraceenabled_ruby___gc__begin(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   173
+extern void __dtrace_ruby___gc__end(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   174
+extern int __dtraceenabled_ruby___gc__end(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   175
+extern void __dtrace_ruby___line(char *, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   176
+extern int __dtraceenabled_ruby___line(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   177
+extern void __dtrace_ruby___object__create__done(char *, char *, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   178
+extern int __dtraceenabled_ruby___object__create__done(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   179
+extern void __dtrace_ruby___object__create__start(char *, char *, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   180
+extern int __dtraceenabled_ruby___object__create__start(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   181
+extern void __dtrace_ruby___object__free(char *);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   182
+extern int __dtraceenabled_ruby___object__free(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   183
+extern void __dtrace_ruby___raise(char *, char *, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   184
+extern int __dtraceenabled_ruby___raise(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   185
+extern void __dtrace_ruby___rescue(char *, int);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   186
+extern int __dtraceenabled_ruby___rescue(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   187
+extern void __dtrace_ruby___ruby__probe(char *, char *);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   188
+extern int __dtraceenabled_ruby___ruby__probe(void);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   189
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   190
+#ifdef	__cplusplus
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   191
+}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   192
+#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   193
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   194
+#endif	/* _DTRACE_H */
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   195
diff -rupN ruby-1.8.7-p357.orig/eval.c ruby-1.8.7-p357/eval.c
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   196
--- ruby-1.8.7-p357.orig/eval.c	2011-05-22 21:49:40.000000000 -0700
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   197
+++ ruby-1.8.7-p357/eval.c	2012-01-23 14:50:29.548765000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   198
@@ -226,6 +226,10 @@ int _setjmp(), _longjmp();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   199
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   200
 #include <sys/stat.h>
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   201
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   202
+#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   203
+#include "dtrace.h"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   204
+#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   205
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   206
 VALUE rb_cProc;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   207
 VALUE rb_cBinding;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   208
 static VALUE proc_invoke _((VALUE,VALUE,VALUE,VALUE));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   209
@@ -3059,12 +3063,22 @@ rb_eval(self, n)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   210
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   211
       case NODE_IF:
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   212
 	if (RTEST(rb_eval(self, node->nd_cond))) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   213
+	    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   214
+	    if (RUBY_LINE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   215
+		if (ruby_current_node && ruby_current_node->nd_file)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   216
+		    RUBY_LINE(ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   217
+	    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   218
 	    EXEC_EVENT_HOOK(RUBY_EVENT_LINE, node, self,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   219
 			    ruby_frame->last_func,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   220
 			    ruby_frame->last_class);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   221
 	    node = node->nd_body;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   222
 	}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   223
 	else {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   224
+	    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   225
+	    if (RUBY_LINE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   226
+		if (ruby_current_node && ruby_current_node->nd_file)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   227
+		    RUBY_LINE(ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   228
+	    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   229
 	    EXEC_EVENT_HOOK(RUBY_EVENT_LINE, node, self,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   230
 			    ruby_frame->last_func,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   231
 			    ruby_frame->last_class);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   232
@@ -3079,6 +3093,11 @@ rb_eval(self, n)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   233
 	    if (nd_type(node) != NODE_WHEN) goto again;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   234
 	    tag = node->nd_head;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   235
 	    while (tag) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   236
+		#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   237
+		if (RUBY_LINE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   238
+		    if (ruby_current_node && ruby_current_node->nd_file)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   239
+			RUBY_LINE(ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   240
+		#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   241
 		EXEC_EVENT_HOOK(RUBY_EVENT_LINE, tag, self,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   242
 				ruby_frame->last_func,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   243
 				ruby_frame->last_class);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   244
@@ -3120,6 +3139,11 @@ rb_eval(self, n)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   245
 		}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   246
 		tag = node->nd_head;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   247
 		while (tag) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   248
+		    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   249
+		    if (RUBY_LINE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   250
+		        if (ruby_current_node && ruby_current_node->nd_file)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   251
+			    RUBY_LINE(ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   252
+		    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   253
 		    EXEC_EVENT_HOOK(RUBY_EVENT_LINE, tag, self,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   254
 				    ruby_frame->last_func,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   255
 				    ruby_frame->last_class);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   256
@@ -3340,6 +3364,11 @@ rb_eval(self, n)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   257
 		rescuing = -1;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   258
 		while (resq) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   259
 		    ruby_current_node = resq;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   260
+		    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   261
+		    if (RUBY_RESCUE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   262
+		        if (ruby_current_node && ruby_current_node->nd_file)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   263
+			RUBY_RESCUE(ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   264
+		    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   265
 		    if (handle_rescue(self, resq)) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   266
 			state = 0;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   267
 			rescuing = 1;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   268
@@ -4160,6 +4189,11 @@ rb_eval(self, n)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   269
 	break;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   270
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   271
       case NODE_NEWLINE:
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   272
+	#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   273
+	if (RUBY_LINE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   274
+	    if (ruby_current_node && ruby_current_node->nd_file)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   275
+		RUBY_LINE(ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   276
+	#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   277
 	EXEC_EVENT_HOOK(RUBY_EVENT_LINE, node, self, 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   278
 			ruby_frame->last_func,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   279
 			ruby_frame->last_class);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   280
@@ -4638,6 +4672,10 @@ rb_longjmp(tag, mesg)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   281
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   282
     rb_trap_restore_mask();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   283
     if (tag != TAG_FATAL) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   284
+	#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   285
+	if (RUBY_RAISE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   286
+	    RUBY_RAISE(rb_obj_classname(ruby_errinfo), ruby_sourcefile, ruby_sourceline);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   287
+	#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   288
 	EXEC_EVENT_HOOK(RUBY_EVENT_RAISE, ruby_current_node,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   289
 			ruby_frame->self,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   290
 			ruby_frame->last_func,
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   291
@@ -5909,6 +5947,13 @@ rb_call0(klass, recv, id, oid, argc, arg
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   292
 		rb_bug("bad argc (%d) specified for `%s(%s)'",
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   293
 		       len, rb_class2name(klass), rb_id2name(id));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   294
 	    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   295
+    	    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   296
+	    if (RUBY_FUNCTION_ENTRY_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   297
+	    	    char *classname = rb_class2name(klass), *methodname = rb_id2name(id);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   298
+		    if (ruby_current_node && ruby_current_node->nd_file && classname && methodname)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   299
+			RUBY_FUNCTION_ENTRY(classname, methodname, ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   300
+	    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   301
+	    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   302
 	    if (event_hooks) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   303
 		int state;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   304
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   305
@@ -5927,6 +5972,13 @@ rb_call0(klass, recv, id, oid, argc, arg
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   306
 	    else {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   307
 		result = call_cfunc(body->nd_cfnc, recv, len, argc, argv);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   308
 	    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   309
+	    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   310
+    	    if (RUBY_FUNCTION_RETURN_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   311
+	        char *classname = rb_class2name(klass), *methodname = rb_id2name(id);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   312
+	        if (ruby_current_node && ruby_current_node->nd_file && classname && methodname)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   313
+	            RUBY_FUNCTION_RETURN(classname, methodname, ruby_current_node->nd_file, nd_line(ruby_current_node));			
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   314
+	    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   315
+	    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   316
 	}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   317
 	break;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   318
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   319
@@ -5954,12 +6006,26 @@ rb_call0(klass, recv, id, oid, argc, arg
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   320
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   321
       case NODE_BMETHOD:
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   322
 	ruby_frame->flags |= FRAME_DMETH;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   323
+	#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   324
+	if (RUBY_FUNCTION_ENTRY_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   325
+		char *classname = rb_class2name(klass), *methodname = rb_id2name(id);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   326
+		if (ruby_current_node && ruby_current_node->nd_file && classname && methodname)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   327
+	            RUBY_FUNCTION_ENTRY(classname, methodname, ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   328
+	 }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   329
+	#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   330
 	if (event_hooks) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   331
 	    struct BLOCK *data;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   332
 	    Data_Get_Struct(body->nd_cval, struct BLOCK, data);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   333
 	    EXEC_EVENT_HOOK(RUBY_EVENT_CALL, data->body, recv, id, klass);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   334
 	}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   335
 	result = proc_invoke(body->nd_cval, rb_ary_new4(argc, argv), recv, klass);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   336
+	#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   337
+	 if (RUBY_FUNCTION_RETURN_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   338
+	    char *classname = rb_class2name(klass), *methodname = rb_id2name(id);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   339
+	    if (ruby_current_node && ruby_current_node->nd_file && classname && methodname)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   340
+	        RUBY_FUNCTION_RETURN(classname, methodname, ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   341
+	}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   342
+	#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   343
 	if (event_hooks) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   344
 	    EXEC_EVENT_HOOK(RUBY_EVENT_RETURN, ruby_current_node, recv, id, klass);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   345
 	}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   346
@@ -6073,6 +6139,13 @@ rb_call0(klass, recv, id, oid, argc, arg
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   347
 		    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   348
 		    ruby_frame->argc = i;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   349
 		}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   350
+		#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   351
+		if (RUBY_FUNCTION_ENTRY_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   352
+			char *classname = rb_class2name(klass), *methodname = rb_id2name(id);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   353
+			if (ruby_current_node && ruby_current_node->nd_file && classname && methodname)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   354
+		            RUBY_FUNCTION_ENTRY(classname, methodname, ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   355
+		 }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   356
+		#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   357
 		if (event_hooks) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   358
 		    EXEC_EVENT_HOOK(RUBY_EVENT_CALL, b2, recv, id, klass);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   359
 		}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   360
@@ -6083,6 +6156,13 @@ rb_call0(klass, recv, id, oid, argc, arg
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   361
 		state = 0;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   362
 	    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   363
 	    POP_TAG();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   364
+	    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   365
+	     if (RUBY_FUNCTION_RETURN_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   366
+		char *classname = rb_class2name(klass), *methodname = rb_id2name(id);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   367
+		if (ruby_current_node && ruby_current_node->nd_file && classname && methodname)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   368
+	 	    RUBY_FUNCTION_RETURN(classname, methodname, ruby_current_node->nd_file, nd_line(ruby_current_node));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   369
+	    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   370
+	    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   371
 	    if (event_hooks) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   372
 		EXEC_EVENT_HOOK(RUBY_EVENT_RETURN, ruby_current_node, recv, id, klass);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   373
 	    }
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   374
diff -rupN ruby-1.8.7-p357.orig/gc.c ruby-1.8.7-p357/gc.c
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   375
--- ruby-1.8.7-p357.orig/gc.c	2009-12-24 00:28:08.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   376
+++ ruby-1.8.7-p357/gc.c	2012-01-23 14:50:29.562277000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   377
@@ -30,6 +30,11 @@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   378
 #include <sys/resource.h>
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   379
 #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   380
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   381
+#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   382
+#include <sys/sdt.h>
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   383
+#include "dtrace.h"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   384
+#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   385
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   386
 #if defined _WIN32 || defined __CYGWIN__
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   387
 #include <windows.h>
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   388
 #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   389
@@ -1264,6 +1269,11 @@ obj_free(obj)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   390
 	break;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   391
     }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   392
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   393
+   #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   394
+   if (RUBY_OBJECT_FREE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   395
+      RUBY_OBJECT_FREE(rb_class2name(CLASS_OF(obj)));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   396
+   #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   397
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   398
     if (FL_TEST(obj, FL_EXIVAR)) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   399
 	rb_free_generic_ivar((VALUE)obj);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   400
     }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   401
@@ -1430,6 +1440,12 @@ garbage_collect()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   402
 {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   403
     struct gc_list *list;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   404
     struct FRAME * volatile frame; /* gcc 2.7.2.3 -O2 bug??  */
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   405
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   406
+    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   407
+    if (RUBY_GC_BEGIN_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   408
+       RUBY_GC_BEGIN();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   409
+    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   410
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   411
     jmp_buf save_regs_gc_mark;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   412
     SET_STACK_END;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   413
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   414
@@ -1522,6 +1538,11 @@ garbage_collect()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   415
     } while (!MARK_STACK_EMPTY);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   416
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   417
     gc_sweep();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   418
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   419
+    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   420
+    if (RUBY_GC_END_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   421
+	RUBY_GC_END();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   422
+    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   423
 }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   424
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   425
 void
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   426
diff -rupN ruby-1.8.7-p357.orig/inits.c ruby-1.8.7-p357/inits.c
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   427
--- ruby-1.8.7-p357.orig/inits.c	2011-12-28 04:47:15.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   428
+++ ruby-1.8.7-p357/inits.c	2012-01-23 14:50:29.571286000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   429
@@ -48,6 +48,7 @@ void Init_Time _((void));
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   430
 void Init_var_tables _((void));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   431
 void Init_version _((void));
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   432
 void Init_st _((void));
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   433
+void Init_Tracer _((void));
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   434
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   435
 void
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   436
 rb_call_inits()
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   437
@@ -87,4 +88,5 @@ rb_call_inits()
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   438
     Init_Enumerator();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   439
     Init_marshal();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   440
     Init_version();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   441
+    Init_Tracer();
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   442
 }
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   443
diff -rupN ruby-1.8.7-p357.orig/Makefile.in ruby-1.8.7-p357/Makefile.in
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   444
--- ruby-1.8.7-p357.orig/Makefile.in	2012-01-23 14:35:56.408791000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   445
+++ ruby-1.8.7-p357/Makefile.in	2012-01-23 14:50:29.579192000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   446
@@ -88,6 +88,7 @@ ASFLAGS       = @ASFLAGS@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   447
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   448
 OBJEXT        = @OBJEXT@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   449
 MANTYPE	      = @MANTYPE@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   450
+DTRACE_OBJS   = @DTRACE_OBJS@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   451
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   452
 INSTALLED_LIST= .installed.list
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   453
 #### End of variables
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   454
@@ -103,11 +104,11 @@ all:
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   455
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   456
 miniruby$(EXEEXT):
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   457
 		@$(RM) $@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   458
-		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   459
+		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(DTRACE_OBJS) $(LIBS) $(OUTFLAG)$@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   460
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   461
 $(PROGRAM):
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   462
 		@$(RM) $@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   463
-		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   464
+		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(DTRACE_OBJS) gc.o eval.o tracer.o $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   465
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   466
 # We must `rm' the library each time this rule is invoked because "updating" a
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   467
 # MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   468
@@ -119,7 +120,7 @@ $(LIBRUBY_A):
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   469
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   470
 $(LIBRUBY_SO):
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   471
 		@-$(PRE_LIBRUBY_UPDATE)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   472
-		$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   473
+		$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(DTRACE_OBJS) $(SOLIBS) $(OUTFLAG)$@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   474
 		@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   475
 						  File.symlink "$(LIBRUBY_SO)", link}' \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   476
 				$(LIBRUBY_ALIASES) || true
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   477
@@ -194,6 +195,9 @@ distclean-local::
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   478
 ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   479
 	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ -c ext/extinit.c
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   480
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   481
+dtrace.@OBJEXT@: dtrace.d $(OBJS) $(MAINOBJ)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   482
+	/usr/sbin/dtrace -G -o $@ -s dtrace.d $(OBJS)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   483
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   484
 update-rubyspec: 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   485
 	if [ -d $(srcdir)/rubyspec ]; then \
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   486
 	  cd $(srcdir)/rubyspec/mspec; \
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   487
diff -rupN ruby-1.8.7-p357.orig/object.c ruby-1.8.7-p357/object.c
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   488
--- ruby-1.8.7-p357.orig/object.c	2009-12-13 19:53:19.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   489
+++ ruby-1.8.7-p357/object.c	2012-01-23 14:50:29.588706000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   490
@@ -20,6 +20,12 @@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   491
 #include <ctype.h>
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   492
 #include <math.h>
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   493
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   494
+#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   495
+#include "dtrace.h"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   496
+#include "node.h"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   497
+NODE* ruby_current_node;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   498
+#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   499
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   500
 VALUE rb_mKernel;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   501
 VALUE rb_cObject;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   502
 VALUE rb_cModule;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   503
@@ -1603,7 +1609,25 @@ rb_obj_alloc(klass)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   504
     if (FL_TEST(klass, FL_SINGLETON)) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   505
 	rb_raise(rb_eTypeError, "can't create instance of virtual class");
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   506
     }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   507
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   508
+    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   509
+    if (RUBY_OBJECT_CREATE_START_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   510
+	char *file = ruby_current_node == NULL ? "" : ruby_current_node->nd_file;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   511
+	int   line = ruby_current_node == NULL ? 0  : nd_line(ruby_current_node);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   512
+	RUBY_OBJECT_CREATE_START(rb_class2name(klass), file, line);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   513
+    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   514
+    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   515
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   516
     obj = rb_funcall(klass, ID_ALLOCATOR, 0, 0);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   517
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   518
+    #ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   519
+    if (RUBY_OBJECT_CREATE_DONE_ENABLED()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   520
+	char *file = ruby_current_node == NULL ? "" : ruby_current_node->nd_file;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   521
+	int   line = ruby_current_node == NULL ? 0  : nd_line(ruby_current_node);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   522
+	RUBY_OBJECT_CREATE_DONE(rb_class2name(klass), file, line);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   523
+    }
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   524
+    #endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   525
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   526
     if (rb_obj_class(obj) != rb_class_real(klass)) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   527
 	rb_raise(rb_eTypeError, "wrong instance allocation");
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   528
     }
688
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   529
diff -rupN ruby-1.8.7-p357.orig/tracer.c ruby-1.8.7-p357/tracer.c
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   530
--- ruby-1.8.7-p357.orig/tracer.c	1969-12-31 16:00:00.000000000 -0800
9333dc6e30ba 7127211 Problem with utility/ruby
April Chin <april.chin@oracle.com>
parents: 542
diff changeset
   531
+++ ruby-1.8.7-p357/tracer.c	2012-01-23 14:50:29.606242000 -0800
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   532
@@ -0,0 +1,64 @@
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   533
+#include "ruby.h"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   534
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   535
+#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   536
+#include "dtrace.h"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   537
+#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   538
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   539
+VALUE rb_mDtrace;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   540
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   541
+static VALUE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   542
+ruby_dtrace_fire(argc, argv, klass)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   543
+  int argc;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   544
+  VALUE *argv;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   545
+  VALUE klass;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   546
+{
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   547
+	int args;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   548
+	VALUE name, data, ret;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   549
+	char *probe_data;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   550
+	char *probe_name;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   551
+	char *start_probe;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   552
+	char *end_probe;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   553
+	
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   554
+	#ifdef ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   555
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   556
+	args = rb_scan_args(argc, argv, "11", &name, &data);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   557
+	probe_data = args == 2 ? StringValuePtr(data) : "";
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   558
+	probe_name = StringValuePtr(name);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   559
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   560
+    	if (rb_block_given_p()) {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   561
+		start_probe = malloc(strlen(probe_name) + 7);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   562
+		end_probe   = malloc(strlen(probe_name) + 5);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   563
+		
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   564
+		sprintf(start_probe, "%s-start", probe_name);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   565
+		sprintf(end_probe, "%s-end", probe_name);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   566
+		
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   567
+		/* Build -start and -end strings for probe names */
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   568
+		if (RUBY_RUBY_PROBE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   569
+			RUBY_RUBY_PROBE(start_probe, probe_data);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   570
+	#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   571
+	
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   572
+		ret = rb_yield(Qnil);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   573
+	
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   574
+	#if ENABLE_DTRACE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   575
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   576
+		if (RUBY_RUBY_PROBE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   577
+			RUBY_RUBY_PROBE(end_probe, probe_data);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   578
+		
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   579
+		free(start_probe);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   580
+		free(end_probe);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   581
+    	} else {
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   582
+		if (RUBY_RUBY_PROBE_ENABLED())
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   583
+			RUBY_RUBY_PROBE(probe_name, probe_data);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   584
+		ret = Qnil;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   585
+	}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   586
+	#endif
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   587
+    	return ret;
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   588
+}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   589
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   590
+
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   591
+void Init_Tracer()
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   592
+{
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   593
+	rb_mDtrace = rb_define_module("DTracer");
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   594
+	rb_define_module_function(rb_mDtrace, "fire", ruby_dtrace_fire, -1);
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   595
+}
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
   596
+