]> granicus.if.org Git - php/commitdiff
- Define HAVE_DTRACE if dtrace is available and ifdef all calls to dtrace probes
authorDavid Soria Parra <dsp@php.net>
Mon, 20 Jul 2009 10:12:34 +0000 (10:12 +0000)
committerDavid Soria Parra <dsp@php.net>
Mon, 20 Jul 2009 10:12:34 +0000 (10:12 +0000)
Zend/zend.c
Zend/zend_dtrace.c
Zend/zend_dtrace.h
Zend/zend_exceptions.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
configure.in
main/main.c

index 0032808b986759e8ed0e1bc2d3b753a6329822cc..a2e5114f80b18ca9d3d5638a1eb7bba37de3514a 100644 (file)
@@ -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 */
index 7824d8b114c26cba10ee019a8ea357068ae95c3f..55412737608fb19fdee66ba27e96684d61b221c7 100644 (file)
@@ -22,7 +22,7 @@
 #include "zend_API.h"\r
 #include "zend_dtrace.h"\r
 \r
-#ifdef HAVE_SYS_SDT_H\r
+#ifdef HAVE_DTRACE\r
 /* PHP DTrace probes {{{ */\r
 static inline char *dtrace_get_executed_filename(TSRMLS_D)\r
 {\r
@@ -118,5 +118,5 @@ ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int r
 }\r
 \r
 /* }}} */\r
-#endif\r
+#endif /* HAVE_DTRACE */\r
 \r
index 01639fbd12ed80f8a19545e3c12b9ff20eb19916..3ccd94f70f4e543a62c7da0bfcf468d4234f8603 100644 (file)
@@ -29,7 +29,7 @@
 extern "C" {\r
 #endif\r
 \r
-#ifdef HAVE_SYS_SDT_H\r
+#ifdef HAVE_DTRACE\r
 ZEND_API zend_op_array *(*zend_dtrace_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);\r
 ZEND_API void (*zend_dtrace_execute)(zend_op_array *op_array TSRMLS_DC);\r
 ZEND_API void (*zend_dtrace_execute_internal)(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);\r
@@ -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);\r
 #include <zend_dtrace_gen.h>\r
 \r
-#else\r
-\r
-#define DTRACE_COMPILE_FILE_ENTRY(arg0, arg1)\r
-#define DTRACE_COMPILE_FILE_ENTRY_ENABLED() (0)\r
-#define DTRACE_COMPILE_FILE_RETURN(arg0, arg1)\r
-#define DTRACE_COMPILE_FILE_RETURN_ENABLED() (0)\r
-#define DTRACE_ERROR(arg0, arg1, arg2)\r
-#define DTRACE_ERROR_ENABLED() (0)\r
-#define DTRACE_EXCEPTION_CAUGHT(arg0)\r
-#define DTRACE_EXCEPTION_CAUGHT_ENABLED() (0)\r
-#define DTRACE_EXCEPTION_THROWN(arg0)\r
-#define DTRACE_EXCEPTION_THROWN_ENABLED() (0)\r
-#define DTRACE_EXECUTE_ENTRY(arg0, arg1)\r
-#define DTRACE_EXECUTE_ENTRY_ENABLED() (0)\r
-#define DTRACE_EXECUTE_RETURN(arg0, arg1)\r
-#define DTRACE_EXECUTE_RETURN_ENABLED() (0)\r
-#define DTRACE_FUNCTION_ENTRY(arg0, arg1, arg2, arg3, arg4)\r
-#define DTRACE_FUNCTION_ENTRY_ENABLED() (0)\r
-#define DTRACE_FUNCTION_RETURN(arg0, arg1, arg2, arg3, arg4)\r
-#define DTRACE_FUNCTION_RETURN_ENABLED() (0)\r
-#define DTRACE_REQUEST_SHUTDOWN(arg0, arg1, arg2)\r
-#define DTRACE_REQUEST_SHUTDOWN_ENABLED() (0)\r
-#define DTRACE_REQUEST_STARTUP(arg0, arg1, arg2)\r
-#define DTRACE_REQUEST_STARTUP_ENABLED() (0)\r
-\r
-#endif /* HAVE_SYS_SDT */\r
+#endif /* HAVE_DTRACE */\r
 \r
 #ifdef __cplusplus\r
 }\r
index b51d9ae74d858550b75695752a7516b045e10ca4..3039746d78a01bbf38771172a6f00fecc0188a22 100644 (file)
@@ -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);
index a839a256a155e25ef7cb69ff87a8c9b5c12de3a8..e8c7a94e3099850a2916622f9c4cc617271f006d 100644 (file)
@@ -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)) {
index 8395db4c82b2641dab92241b8ec66173efd739e9..18885002a20f2b825990ee0b352b7d0fe95b1e6c 100644 (file)
@@ -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)) {
index a371a0f06867ae653cce09594ce38934df1e2954..45c8e5b30aa6a4cc33ad0a25e0931fab2b2be702 100644 (file)
@@ -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
 
index d79c2c3fd57c6c2be603ef0d3ed1a8cbff530a0a..00aed96168cb9aeb5150a85d0c271957a7af7c95 100644 (file)
@@ -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 */
 }
 /* }}} */