Skip to content

Commit 13e6dac

Browse files
committed
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0: Fixes in .gdbinit for ZE 3
2 parents 1e225a6 + db894fa commit 13e6dac

File tree

1 file changed

+33
-12
lines changed

1 file changed

+33
-12
lines changed

.gdbinit

+33-12
Original file line numberDiff line numberDiff line change
@@ -207,12 +207,17 @@ define ____printzv_contents
207207
____executor_globals
208208
set $handle = $zvalue->value.obj.handle
209209
set $handlers = $zvalue->value.obj.handlers
210-
set $zobj = $zvalue->value.obj
211-
set $cname = $zobj->ce->name->val
210+
set $zobj = $zvalue->value.obj
211+
set $cname = $zobj->ce->name->val
212212
printf "(%s) #%d", $cname, $handle
213213
if ! $arg1
214214
if $handlers->get_properties == &zend_std_get_properties
215-
set $ht = $zobj->properties
215+
if $zobj->properties
216+
set $ht = $zobj->properties
217+
else
218+
set $ht = &$zobj->ce->properties_info
219+
end
220+
printf "\nProperties "
216221
if $ht
217222
set $ind = $ind + 1
218223
____print_ht $ht 1
@@ -223,7 +228,7 @@ define ____printzv_contents
223228
set $i = $i - 1
224229
end
225230
else
226-
echo "no properties found"
231+
echo "not found"
227232
end
228233
end
229234
end
@@ -466,9 +471,9 @@ define print_inh
466471
end
467472

468473
define print_pi
469-
set $pi = $arg0
474+
set $pi = (zend_property_info *)$arg0
470475
printf "[%p] {\n", $pi
471-
printf " h = %lu\n", $pi->h
476+
printf " ce = [%p] %s\n", $pi->ce, $pi->ce->name->val
472477
printf " flags = %d (", $pi->flags
473478
if $pi->flags & 0x100
474479
printf "ZEND_ACC_PUBLIC"
@@ -487,16 +492,27 @@ define print_pi
487492
end
488493
printf ")\n"
489494
printf " name = "
490-
____print_str $pi->name $pi->name_length
491-
printf "\n}\n"
495+
print_zstr $pi->name
496+
printf "}\n"
497+
end
498+
499+
document print_pi
500+
Takes a pointer to an object's property and prints the property information
501+
usage: print_pi <ptr>
492502
end
493503

494504
define ____print_str
495505
set $tmp = 0
496506
set $str = $arg0
507+
if $argc > 2
508+
set $maxlen = $arg2
509+
else
510+
set $maxlen = 256
511+
end
512+
497513
printf "\""
498-
while $tmp < $arg1 && $tmp < 256
499-
if $str[$tmp] > 32 && $str[$tmp] < 127
514+
while $tmp < $arg1 && $tmp < $maxlen
515+
if $str[$tmp] > 31 && $str[$tmp] < 127
500516
printf "%c", $str[$tmp]
501517
else
502518
printf "\\%o", $str[$tmp]
@@ -567,14 +583,19 @@ end
567583

568584
define print_zstr
569585
set $zstr = (zend_string *)$arg0
586+
if $argc == 2
587+
set $maxlen = $arg1
588+
else
589+
set $maxlen = $zstr->len
590+
end
570591
printf "string(%d) ", $zstr->len
571-
____print_str $zstr->val $zstr->len
592+
____print_str $zstr->val $zstr->len $maxlen
572593
printf "\n"
573594
end
574595

575596
document print_zstr
576597
print the length and contents of a zend string
577-
usage: print_zstr <ptr>
598+
usage: print_zstr <ptr> [max length]
578599
end
579600

580601
define zbacktrace

0 commit comments

Comments
 (0)