summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend.c2
-rw-r--r--Zend/zend_dtrace.c4
-rw-r--r--Zend/zend_dtrace.h29
-rw-r--r--Zend/zend_exceptions.c2
-rw-r--r--Zend/zend_vm_def.h2
-rw-r--r--Zend/zend_vm_execute.h2
-rw-r--r--configure.in3
-rw-r--r--main/main.c4
8 files changed, 18 insertions, 30 deletions
diff --git a/Zend/zend.c b/Zend/zend.c
index 0032808b98..a2e5114f80 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -1590,12 +1590,14 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
va_start(args, format);
+#ifdef HAVE_DTRACE
if(DTRACE_ERROR_ENABLED()) {
char *dtrace_error_buffer;
zend_vspprintf(&dtrace_error_buffer, 0, format, args);
DTRACE_ERROR(dtrace_error_buffer, error_filename, error_lineno);
efree(dtrace_error_buffer);
}
+#endif /* HAVE_DTRACE */
/* if we don't have a user defined error handler */
diff --git a/Zend/zend_dtrace.c b/Zend/zend_dtrace.c
index 7824d8b114..5541273760 100644
--- a/Zend/zend_dtrace.c
+++ b/Zend/zend_dtrace.c
@@ -22,7 +22,7 @@
#include "zend_API.h"
#include "zend_dtrace.h"
-#ifdef HAVE_SYS_SDT_H
+#ifdef HAVE_DTRACE
/* PHP DTrace probes {{{ */
static inline char *dtrace_get_executed_filename(TSRMLS_D)
{
@@ -118,5 +118,5 @@ ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int r
}
/* }}} */
-#endif
+#endif /* HAVE_DTRACE */
diff --git a/Zend/zend_dtrace.h b/Zend/zend_dtrace.h
index 01639fbd12..3ccd94f70f 100644
--- a/Zend/zend_dtrace.h
+++ b/Zend/zend_dtrace.h
@@ -29,7 +29,7 @@
extern "C" {
#endif
-#ifdef HAVE_SYS_SDT_H
+#ifdef HAVE_DTRACE
ZEND_API zend_op_array *(*zend_dtrace_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
ZEND_API void (*zend_dtrace_execute)(zend_op_array *op_array TSRMLS_DC);
ZEND_API void (*zend_dtrace_execute_internal)(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);
@@ -39,32 +39,7 @@ ZEND_API void dtrace_execute(zend_op_array *op_array TSRMLS_DC);
ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);
#include <zend_dtrace_gen.h>
-#else
-
-#define DTRACE_COMPILE_FILE_ENTRY(arg0, arg1)
-#define DTRACE_COMPILE_FILE_ENTRY_ENABLED() (0)
-#define DTRACE_COMPILE_FILE_RETURN(arg0, arg1)
-#define DTRACE_COMPILE_FILE_RETURN_ENABLED() (0)
-#define DTRACE_ERROR(arg0, arg1, arg2)
-#define DTRACE_ERROR_ENABLED() (0)
-#define DTRACE_EXCEPTION_CAUGHT(arg0)
-#define DTRACE_EXCEPTION_CAUGHT_ENABLED() (0)
-#define DTRACE_EXCEPTION_THROWN(arg0)
-#define DTRACE_EXCEPTION_THROWN_ENABLED() (0)
-#define DTRACE_EXECUTE_ENTRY(arg0, arg1)
-#define DTRACE_EXECUTE_ENTRY_ENABLED() (0)
-#define DTRACE_EXECUTE_RETURN(arg0, arg1)
-#define DTRACE_EXECUTE_RETURN_ENABLED() (0)
-#define DTRACE_FUNCTION_ENTRY(arg0, arg1, arg2, arg3, arg4)
-#define DTRACE_FUNCTION_ENTRY_ENABLED() (0)
-#define DTRACE_FUNCTION_RETURN(arg0, arg1, arg2, arg3, arg4)
-#define DTRACE_FUNCTION_RETURN_ENABLED() (0)
-#define DTRACE_REQUEST_SHUTDOWN(arg0, arg1, arg2)
-#define DTRACE_REQUEST_SHUTDOWN_ENABLED() (0)
-#define DTRACE_REQUEST_STARTUP(arg0, arg1, arg2)
-#define DTRACE_REQUEST_STARTUP_ENABLED() (0)
-
-#endif /* HAVE_SYS_SDT */
+#endif /* HAVE_DTRACE */
#ifdef __cplusplus
}
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index b51d9ae74d..3039746d78 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -83,6 +83,7 @@ void zend_exception_restore(TSRMLS_D) /* {{{ */
void zend_throw_exception_internal(zval *exception TSRMLS_DC) /* {{{ */
{
+#ifdef HAVE_DTRACE
if (DTRACE_EXCEPTION_THROWN_ENABLED()) {
zstr classname;
char *s_classname;
@@ -97,6 +98,7 @@ void zend_throw_exception_internal(zval *exception TSRMLS_DC) /* {{{ */
efree(classname.v);
efree(s_classname);
}
+#endif /* HAVE_DTRACE */
if (exception != NULL) {
zval *previous = EG(exception);
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index a839a256a1..e8c7a94e30 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2627,6 +2627,7 @@ ZEND_VM_HANDLER(107, ZEND_CATCH, ANY, CV)
}
ce = Z_OBJCE_P(EG(exception));
+#ifdef HAVE_DTRACE
if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) {
char *s_classname;
int s_classname_len;
@@ -2634,6 +2635,7 @@ ZEND_VM_HANDLER(107, ZEND_CATCH, ANY, CV)
DTRACE_EXCEPTION_CAUGHT(s_classname);
efree(s_classname);
}
+#endif /* HAVE_DTRACE */
if (ce != EX_T(opline->op1.u.var).class_entry) {
if (!instanceof_function(ce, EX_T(opline->op1.u.var).class_entry TSRMLS_CC)) {
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 8395db4c82..18885002a2 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -1191,6 +1191,7 @@ static int ZEND_FASTCALL ZEND_CATCH_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
ce = Z_OBJCE_P(EG(exception));
+#ifdef HAVE_DTRACE
if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) {
char *s_classname;
int s_classname_len;
@@ -1198,6 +1199,7 @@ static int ZEND_FASTCALL ZEND_CATCH_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
DTRACE_EXCEPTION_CAUGHT(s_classname);
efree(s_classname);
}
+#endif /* HAVE_DTRACE */
if (ce != EX_T(opline->op1.u.var).class_entry) {
if (!instanceof_function(ce, EX_T(opline->op1.u.var).class_entry TSRMLS_CC)) {
diff --git a/configure.in b/configure.in
index a371a0f068..45c8e5b30a 100644
--- a/configure.in
+++ b/configure.in
@@ -907,7 +907,8 @@ if test "$PHP_DTRACE" = "yes"; then
[PHP_ADD_DTRACE([Zend/zend_dtrace.d], [main/main.c, Zend/zend_API.c \
Zend/zend_execute.c Zend/zend_exceptions.c \
Zend/zend_dtrace.c Zend/zend.c])
- PHP_INIT_DTRACE([Zend/zend_dtrace.d], [Zend/zend_dtrace_gen.h])],
+ PHP_INIT_DTRACE([Zend/zend_dtrace.d], [Zend/zend_dtrace_gen.h])
+ AC_DEFINE(HAVE_DTRACE, 1, [Whether to enable DTrace support])],
[])
fi
diff --git a/main/main.c b/main/main.c
index d79c2c3fd5..00aed96168 100644
--- a/main/main.c
+++ b/main/main.c
@@ -1441,7 +1441,9 @@ int php_request_startup(TSRMLS_D)
{
int retval = SUCCESS;
+#ifdef HAVE_DTRACE
DTRACE_REQUEST_STARTUP(SAFE_FILENAME(SG(request_info).path_translated), SAFE_FILENAME(SG(request_info).request_uri), SAFE_FILENAME(SG(request_info).request_method));
+#endif /* HAVE_DTRACE */
#ifdef PHP_WIN32
PG(com_initialized) = 0;
@@ -1724,7 +1726,9 @@ void php_request_shutdown(void *dummy)
}
#endif
+#ifdef HAVE_DTRACE
DTRACE_REQUEST_SHUTDOWN(SAFE_FILENAME(SG(request_info).path_translated), SAFE_FILENAME(SG(request_info).request_uri), SAFE_FILENAME(SG(request_info).request_method));
+#endif /* HAVE_DTRACE */
}
/* }}} */