author | Gabriel Carrillo <gabriel.carrillo@oracle.com> |
Wed, 11 Jun 2014 09:41:54 -0700 | |
branch | s11u1sru20-backport |
changeset 3174 | 3b5835d4aaf3 |
parent 688 | 9333dc6e30ba |
permissions | -rw-r--r-- |
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 |
+ |