version 1.1.1.1, 2012/05/29 12:34:35
|
version 1.1.1.2, 2013/10/14 08:02:48
|
Line 24
|
Line 24
|
|
|
#ifdef HAVE_DTRACE |
#ifdef HAVE_DTRACE |
/* PHP DTrace probes {{{ */ |
/* PHP DTrace probes {{{ */ |
static inline char *dtrace_get_executed_filename(TSRMLS_D) | static inline const char *dtrace_get_executed_filename(TSRMLS_D) |
{ |
{ |
if (EG(current_execute_data) && EG(current_execute_data)->op_array) { |
if (EG(current_execute_data) && EG(current_execute_data)->op_array) { |
return EG(current_execute_data)->op_array->filename; |
return EG(current_execute_data)->op_array->filename; |
Line 36 static inline char *dtrace_get_executed_filename(TSRML
|
Line 36 static inline char *dtrace_get_executed_filename(TSRML
|
ZEND_API zend_op_array *dtrace_compile_file(zend_file_handle *file_handle, int type TSRMLS_DC) |
ZEND_API zend_op_array *dtrace_compile_file(zend_file_handle *file_handle, int type TSRMLS_DC) |
{ |
{ |
zend_op_array *res; |
zend_op_array *res; |
DTRACE_COMPILE_FILE_ENTRY(file_handle->opened_path, file_handle->filename); | DTRACE_COMPILE_FILE_ENTRY(file_handle->opened_path, (char *)file_handle->filename); |
res = compile_file(file_handle, type TSRMLS_CC); |
res = compile_file(file_handle, type TSRMLS_CC); |
DTRACE_COMPILE_FILE_RETURN(file_handle->opened_path, file_handle->filename); | DTRACE_COMPILE_FILE_RETURN(file_handle->opened_path, (char *)file_handle->filename); |
|
|
return res; |
return res; |
} |
} |
Line 47 ZEND_API zend_op_array *dtrace_compile_file(zend_file_
|
Line 47 ZEND_API zend_op_array *dtrace_compile_file(zend_file_
|
ZEND_API void dtrace_execute(zend_op_array *op_array TSRMLS_DC) |
ZEND_API void dtrace_execute(zend_op_array *op_array TSRMLS_DC) |
{ |
{ |
int lineno; |
int lineno; |
char *scope, *filename, *funcname, *classname; | const char *scope, *filename, *funcname, *classname; |
scope = filename = funcname = classname = NULL; |
scope = filename = funcname = classname = NULL; |
|
|
/* we need filename and lineno for both execute and function probes */ |
/* we need filename and lineno for both execute and function probes */ |
Line 58 ZEND_API void dtrace_execute(zend_op_array *op_array T
|
Line 58 ZEND_API void dtrace_execute(zend_op_array *op_array T
|
} |
} |
|
|
if (DTRACE_FUNCTION_ENTRY_ENABLED() || DTRACE_FUNCTION_RETURN_ENABLED()) { |
if (DTRACE_FUNCTION_ENTRY_ENABLED() || DTRACE_FUNCTION_RETURN_ENABLED()) { |
filename = dtrace_get_executed_filename(TSRMLS_C); |
|
classname = get_active_class_name(&scope TSRMLS_CC); |
classname = get_active_class_name(&scope TSRMLS_CC); |
funcname = get_active_function_name(TSRMLS_C); |
funcname = get_active_function_name(TSRMLS_C); |
lineno = zend_get_executed_lineno(TSRMLS_C); |
|
} |
} |
|
|
if (DTRACE_EXECUTE_ENTRY_ENABLED()) { |
if (DTRACE_EXECUTE_ENTRY_ENABLED()) { |
DTRACE_EXECUTE_ENTRY(filename, lineno); | DTRACE_EXECUTE_ENTRY((char *)filename, lineno); |
} |
} |
|
|
if (DTRACE_FUNCTION_ENTRY_ENABLED() && funcname != NULL) { |
if (DTRACE_FUNCTION_ENTRY_ENABLED() && funcname != NULL) { |
DTRACE_FUNCTION_ENTRY(funcname, filename, lineno, classname, scope); | DTRACE_FUNCTION_ENTRY((char *)funcname, (char *)filename, lineno, (char *)classname, (char *)scope); |
} |
} |
|
|
execute(op_array TSRMLS_CC); |
execute(op_array TSRMLS_CC); |
|
|
if (DTRACE_FUNCTION_RETURN_ENABLED() && funcname != NULL) { |
if (DTRACE_FUNCTION_RETURN_ENABLED() && funcname != NULL) { |
DTRACE_FUNCTION_RETURN(funcname, filename, lineno, classname, scope); | DTRACE_FUNCTION_RETURN((char *)funcname, (char *)filename, lineno, (char *)classname, (char *)scope); |
} |
} |
|
|
if (DTRACE_EXECUTE_RETURN_ENABLED()) { |
if (DTRACE_EXECUTE_RETURN_ENABLED()) { |
DTRACE_EXECUTE_RETURN(filename, lineno); | DTRACE_EXECUTE_RETURN((char *)filename, lineno); |
} |
} |
} |
} |
|
|
ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC) |
ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC) |
{ |
{ |
int lineno; |
int lineno; |
char *filename; | const char *filename; |
if (DTRACE_EXECUTE_ENTRY_ENABLED() || DTRACE_EXECUTE_RETURN_ENABLED()) { |
if (DTRACE_EXECUTE_ENTRY_ENABLED() || DTRACE_EXECUTE_RETURN_ENABLED()) { |
filename = dtrace_get_executed_filename(TSRMLS_C); |
filename = dtrace_get_executed_filename(TSRMLS_C); |
lineno = zend_get_executed_lineno(TSRMLS_C); |
lineno = zend_get_executed_lineno(TSRMLS_C); |
} |
} |
|
|
if (DTRACE_EXECUTE_ENTRY_ENABLED()) { |
if (DTRACE_EXECUTE_ENTRY_ENABLED()) { |
DTRACE_EXECUTE_ENTRY(filename, lineno); | DTRACE_EXECUTE_ENTRY((char *)filename, lineno); |
} |
} |
|
|
execute_internal(execute_data_ptr, return_value_used TSRMLS_CC); |
execute_internal(execute_data_ptr, return_value_used TSRMLS_CC); |
|
|
if (DTRACE_EXECUTE_RETURN_ENABLED()) { |
if (DTRACE_EXECUTE_RETURN_ENABLED()) { |
DTRACE_EXECUTE_RETURN(filename, lineno); | DTRACE_EXECUTE_RETURN((char *)filename, lineno); |
} |
} |
} |
} |
|
|