Skip to content

Commit

Permalink
Implemented FR #63188 (Display class name when debugging with gdb mac…
Browse files Browse the repository at this point in the history
…ro zbacktrace)
  • Loading branch information
reeze committed Sep 29, 2012
1 parent 36c1024 commit 613674c
Showing 1 changed file with 37 additions and 8 deletions.
45 changes: 37 additions & 8 deletions .gdbinit
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,41 @@ define dump_bt
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->name
printf "%s->", $fst.function.common.scope->name
else
set $class_name_ptr = (char **)malloc(sizeof(char **))
set $class_name_len = (int *)malloc(sizeof(int *))

if basic_functions_module.zts
set $dup = zend_get_object_classname($t->object, $class_name_ptr, $class_name_len, $tsrm_ls)
else
set $dup = zend_get_object_classname($t->object, $class_name_ptr, $class_name_len)
end

printf "%s->", *$class_name_ptr

if !$dup
call _efree(*$class_name_ptr, "[GDB]", 0, "", 0)
end
call (void) free($class_name_ptr)
call (void) free($class_name_len)
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"
Expand Down Expand Up @@ -73,7 +102,7 @@ define dump_bt
if $type == 7
printf "resource(#%d)", $zvalue->value.lval
end
if $type == 8
if $type == 8
printf "constant"
end
if $type == 9
Expand All @@ -89,7 +118,7 @@ define dump_bt
end
printf ") "
else
printf "%s() ", $t->function_state.function->common.function_name
printf "%s() ", $fst.function->common.function_name
end
else
printf "??? "
Expand Down Expand Up @@ -600,7 +629,7 @@ define zmemcheck
end
end
if $not_found
printf "no such block that begins at %p.\n", $aptr
printf "no such block that begins at %p.\n", $aptr
end
if $arg0 == 0
printf "-------------------------------------------------------------------------------\n"
Expand Down

0 comments on commit 613674c

Please sign in to comment.