diff options
author | andrey <andrey@php.net> | 2012-06-27 16:51:07 +0300 |
---|---|---|
committer | andrey <andrey@php.net> | 2012-06-27 16:51:07 +0300 |
commit | 6e648e934052c784eeb7ee3784aea0cf52bf4898 (patch) | |
tree | a40a236518840e6a183c8b443c518556a3772de0 /ext/mysqlnd/mysqlnd_debug.c | |
parent | a027ba3afe8b6f5144f928f510d9af8ffe10a532 (diff) | |
download | php-git-6e648e934052c784eeb7ee3784aea0cf52bf4898.tar.gz |
trace allocations in a file
Diffstat (limited to 'ext/mysqlnd/mysqlnd_debug.c')
-rw-r--r-- | ext/mysqlnd/mysqlnd_debug.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/ext/mysqlnd/mysqlnd_debug.c b/ext/mysqlnd/mysqlnd_debug.c index 5c77b42459..cf355d2ffb 100644 --- a/ext/mysqlnd/mysqlnd_debug.c +++ b/ext/mysqlnd/mysqlnd_debug.c @@ -745,21 +745,26 @@ mysqlnd_debug_init(const char * skip_functions[] TSRMLS_DC) PHPAPI void _mysqlnd_debug(const char * mode TSRMLS_DC) { #if PHP_DEBUG - MYSQLND_DEBUG *dbg = MYSQLND_G(dbg); + MYSQLND_DEBUG * dbg = MYSQLND_G(dbg); if (!dbg) { - MYSQLND_G(dbg) = dbg = mysqlnd_debug_init(mysqlnd_debug_std_no_trace_funcs TSRMLS_CC); - if (!dbg) { - return; + struct st_mysqlnd_plugin_trace_log * trace_log_plugin = mysqlnd_plugin_find("debug_trace"); + if (trace_log_plugin) { + dbg = trace_log_plugin->methods.trace_instance_init(mysqlnd_debug_std_no_trace_funcs TSRMLS_CC); + if (!dbg) { + return; + } + MYSQLND_G(dbg) = dbg; } } - - dbg->m->close(dbg); - dbg->m->set_mode(dbg, mode); - while (zend_stack_count(&dbg->call_stack)) { - zend_stack_del_top(&dbg->call_stack); - } - while (zend_stack_count(&dbg->call_time_stack)) { - zend_stack_del_top(&dbg->call_time_stack); + if (dbg) { + dbg->m->close(dbg); + dbg->m->set_mode(dbg, mode); + while (zend_stack_count(&dbg->call_stack)) { + zend_stack_del_top(&dbg->call_stack); + } + while (zend_stack_count(&dbg->call_time_stack)) { + zend_stack_del_top(&dbg->call_time_stack); + } } #endif } |