]> granicus.if.org Git - php/commitdiff
Fixed zbacktrace
authorXinchen Hui <laruence@php.net>
Thu, 28 Aug 2014 09:03:27 +0000 (17:03 +0800)
committerXinchen Hui <laruence@php.net>
Thu, 28 Aug 2014 09:03:27 +0000 (17:03 +0800)
.gdbinit

index 72d3085abf710e4f845dfbccdbba7b5cefe4bbfe..c1ef530f8e6a7d4171bbbda58f79313ce10245c1 100644 (file)
--- a/.gdbinit
+++ b/.gdbinit
@@ -48,7 +48,7 @@ define print_cvs
 end
 
 define dump_bt
-       set $ex = $arg0->prev_execute_data
+       set $ex = $arg0
        while $ex
                printf "[%p] ", $ex
                set $func = $ex->func
@@ -65,7 +65,11 @@ define dump_bt
                                end
                        end
 
-                       printf "%s(", $func->common.function_name->val
+                       if $func->common.function_name
+                               printf "%s(", $func->common.function_name->val
+                       else
+                               printf "(main"
+                       end
 
                        set $callFrameSize = (sizeof(zend_execute_data) + sizeof(zval) - 1) / sizeof(zval)
 
@@ -119,7 +123,11 @@ define dump_bt
                        printf "??? "
                end
                if $func != 0
-                       printf "%s:%d ", $func->op_array.filename->val, $ex->opline->lineno
+                       if $func->type == 2
+                               printf "%s:%d ", $func->op_array.filename->val, $ex->opline->lineno
+                       else
+                               printf "[internal function]"
+                       end
                end
                set $ex = $ex->prev_execute_data
                printf "\n"