1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Add zbacktrace_ex to .gdbinit which will print extra argument info than zbacktrace

Implement FR #60448
This commit is contained in:
Xinchen Hui
2011-12-06 09:56:01 +00:00
parent 3f2bcb7723
commit 17f5bf2ed9

View File

@@ -39,7 +39,62 @@ define dump_bt
while $t
printf "[0x%08x] ", $t
if $t->function_state.function->common.function_name
printf "%s() ", $t->function_state.function->common.function_name
if !$__plain
if $t->function_state.arguments
set $count = (int)*($t->function_state.arguments)
printf "%s(", $t->function_state.function->common.function_name
while $count > 0
set $zvalue = *(zval **)($t->function_state.arguments - $count)
set $type = $zvalue->type
if $type == 0
printf "NULL"
end
if $type == 1
printf "%ld", $zvalue->value.lval
end
if $type == 2
printf "%lf", $zvalue->value.dval
end
if $type == 3
if $zvalue->value.lval
printf "true"
else
printf "false"
end
end
if $type == 4
printf "array(%d)[0x%08x]", $zvalue->value.ht->nNumOfElements, $zvalue
end
if $type == 5
printf "object[0x%08x]", $zvalue
end
if $type == 6
____print_str $zvalue->value.str.val $zvalue->value.str.len
end
if $type == 7
printf "resource(#%d)", $zvalue->value.lval
end
if $type == 8
printf "constant"
end
if $type == 9
printf "const_array"
end
if $type > 9
printf "unknown type %d", $type
end
set $count = $count -1
if $count > 0
printf ", "
end
end
printf ") "
else
printf "%s() ", $t->function_state.function->common.function_name
end
else
printf "%s() ", $t->function_state.function->common.function_name
end
else
printf "??? "
end
@@ -480,6 +535,7 @@ end
define zbacktrace
____executor_globals
set $__plain = 1
dump_bt $eg.current_execute_data
end
@@ -490,6 +546,21 @@ document zbacktrace
> (gdb) dump_bt $eg.current_execute_data
end
define zbacktrace_ex
____executor_globals
set $__plain = 0
dump_bt $eg.current_execute_data
set $__plain = 1
end
document zbacktrace_ex
prints backtrace with arguments info
This command is almost a short cut for
> set $__plain = 0
> (gdb) ____executor_globals
> (gdb) dump_bt $eg.current_execute_data
end
define zmemcheck
set $p = alloc_globals.head
set $stat = "?"