From: Stanislav Malyshev Date: Mon, 1 Oct 2012 03:31:36 +0000 (-0700) Subject: Merge branch 'pull-request/209' into PHP-5.4 X-Git-Tag: php-5.4.8RC1~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c95fd5f758912c23e74ac90e6bf56002d4a5947a;p=php Merge branch 'pull-request/209' into PHP-5.4 * pull-request/209: Eliminate process running requirement of dump_bt in .gdbinit Add missing ____executor_globals in dump_bt if needed Implemented FR #63188 (Display class name when debugging with gdb macro zbacktrace) --- c95fd5f758912c23e74ac90e6bf56002d4a5947a diff --cc .gdbinit index 4a26d9608b,be2f007d27..87c9425615 --- a/.gdbinit +++ b/.gdbinit @@@ -38,12 -38,53 +38,53 @@@ define dump_b set $t = $arg0 while $t printf "[%p] ", $t - if $t->function_state.function->common.function_name - if $t->function_state.arguments - set $count = (int)*($t->function_state.arguments) - printf "%s(", $t->function_state.function->common.function_name + set $fst = $t->function_state + if $fst.function->common.function_name + if $fst.arguments + set $count = (int)*($fst.arguments) + + if $t->object + if $fst.function.common.scope + printf "%s->", $fst.function.common.scope->name + else + if !$eg && !basic_functions_module.zts + ____executor_globals + end + + set $known_class = 0 + if $eg + set $handle = $t->object.value.obj.handle + set $handlers = $t->object.value.obj.handlers + set $zobj = (zend_object *)$eg.objects_store.object_buckets[$handle].bucket.obj.object + + if $handlers->get_class_entry == &zend_std_object_get_class + set $known_class = 1 + + if $handlers.get_class_name + if $handlers.get_class_name != &zend_std_object_get_class_name + set $known_class = 0 + end + end + + if $known_class + printf "%s->", $zobj->ce.name + end + end + end + + if !$known_class - printf "Unknow->" ++ printf "Unknown->" + end + end + else + if $fst.function.common.scope + printf "%s::", $fst.function.common.scope->name + end + end + + printf "%s(", $fst.function->common.function_name while $count > 0 - set $zvalue = *(zval **)($t->function_state.arguments - $count) + set $zvalue = *(zval **)($fst.arguments - $count) set $type = $zvalue->type if $type == 0 printf "NULL"