@@ -207,12 +207,17 @@ define ____printzv_contents
207
207
____executor_globals
208
208
set $handle = $zvalue ->value.obj.handle
209
209
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
212
212
printf " (%s) #%d" , $cname , $handle
213
213
if ! $arg1
214
214
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 " \n Properties "
216
221
if $ht
217
222
set $ind = $ind + 1
218
223
____print_ht $ht 1
@@ -223,7 +228,7 @@ define ____printzv_contents
223
228
set $i = $i - 1
224
229
end
225
230
else
226
- echo "no properties found"
231
+ echo "not found"
227
232
end
228
233
end
229
234
end
@@ -466,9 +471,9 @@ define print_inh
466
471
end
467
472
468
473
define print_pi
469
- set $pi = $arg0
474
+ set $pi = (zend_property_info *) $arg0
470
475
printf " [%p] {\n " , $pi
471
- printf " h = %lu \n " , $pi ->h
476
+ printf " ce = [%p] %s \n " , $pi ->ce, $pi ->ce->name->val
472
477
printf " flags = %d (" , $pi ->flags
473
478
if $pi ->flags & 0x100
474
479
printf " ZEND_ACC_PUBLIC"
@@ -487,16 +492,27 @@ define print_pi
487
492
end
488
493
printf " )\n "
489
494
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>
492
502
end
493
503
494
504
define ____print_str
495
505
set $tmp = 0
496
506
set $str = $arg0
507
+ if $argc > 2
508
+ set $maxlen = $arg2
509
+ else
510
+ set $maxlen = 256
511
+ end
512
+
497
513
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
500
516
printf " %c" , $str [$tmp ]
501
517
else
502
518
printf " \\ %o" , $str [$tmp ]
@@ -567,14 +583,19 @@ end
567
583
568
584
define print_zstr
569
585
set $zstr = (zend_string *)$arg0
586
+ if $argc == 2
587
+ set $maxlen = $arg1
588
+ else
589
+ set $maxlen = $zstr ->len
590
+ end
570
591
printf " string(%d) " , $zstr ->len
571
- ____print_str $zstr ->val $zstr ->len
592
+ ____print_str $zstr ->val $zstr ->len $maxlen
572
593
printf " \n "
573
594
end
574
595
575
596
document print_zstr
576
597
print the length and contents of a zend string
577
- usage: print_zstr <ptr>
598
+ usage: print_zstr <ptr> [max length]
578
599
end
579
600
580
601
define zbacktrace
0 commit comments