From: David Soria Parra Date: Mon, 20 Jul 2009 10:12:34 +0000 (+0000) Subject: - Define HAVE_DTRACE if dtrace is available and ifdef all calls to dtrace probes X-Git-Tag: php-5.4.0alpha1~191^2~3034 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b4ea9bf939d2d3dd3217b5206769d30367e1dac6;p=php - Define HAVE_DTRACE if dtrace is available and ifdef all calls to dtrace probes --- 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 -#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 */ } /* }}} */