diff options
Diffstat (limited to '.gdbinit')
-rw-r--r-- | .gdbinit | 61 |
1 files changed, 60 insertions, 1 deletions
@@ -193,6 +193,65 @@ define printzn end document printzn - print type and content of znode + print type and content of znode. usage: printzn &opline->op1 +end + +define printzops + printf "op1 => " + printzn &execute_data->opline.op1 + printf "op2 => " + printzn &execute_data->opline.op2 + printf "result => " + printzn &execute_data->opline.result +end + +document printzops + dump operands of the current opline +end + +define zmemcheck + set $p = alloc_globals.head + set $stat = "?" + if $arg0 != 0 + set $not_found = 1 + else + set $not_found = 0 + end + printf " block file:line (orig) status\n" + printf "-------------------------------------------------------------------------------\n" + while $p + set $aptr = $p + sizeof(struct _zend_mem_header) + sizeof(align_test) + if $arg0 == 0 || (void *)$aptr == (void *)$arg0 + if $p->magic == 0x7312f8dc + set $stat = "OK" + end + if $p->magic == 0x99954317 + set $stat = "FREED" + end + if $p->magic == 0xfb8277dc + set $stat = "CACHED" + end + + printf " 0x%08x %-52s:%5d %-06s\n", $aptr, $p->filename, $p->lineno, $stat + if $p->orig_filename + printf " <= %-52s:%5d\n", $p->orig_filename, $p->orig_lineno + end + if $arg0 != 0 + set $p = 0 + set $not_found = 0 + else + set $p = $p->pNext + end + else + set $p = $p->pNext + end + end + if $not_found + printf "no such block that begins at 0x%08x.\n", $aptr + end +end + +document zmemcheck + show status of a memory block. usage: zmemcheck [ptr]. if ptr = 0 all blocks will be listed. end |