@@ -42,7 +42,7 @@ define print_cvs
4242
4343 printf " Compiled variables count: %d\n\n " , $cv_count
4444 while $cv_idx < $cv_count
45- printf " [%d] '%s'\n " , $cv_idx , $cv [$cv_idx ].val
45+ printf " [%d] '$ %s'\n " , $cv_idx , $cv [$cv_idx ].val@ $cv [ $cv_idx ].len
4646 set $zvalue = ((zval *) $cv_ex_ptr ) + $callFrameSize + $cv_idx
4747 printzv $zvalue
4848 set $cv_idx = $cv_idx + 1
@@ -66,18 +66,18 @@ define dump_bt
6666 if $func
6767 if $ex ->This->value.obj
6868 if $func ->common .scope
69- printf " %s->" , $func ->common .scope ->name->val
69+ printf " %s->" , (char*) $func ->common .scope ->name->val
7070 else
71- printf " %s->" , $ex ->This->value.obj->ce.name->val
71+ printf " %s->" , (char*) $ex ->This->value.obj->ce.name->val
7272 end
7373 else
7474 if $func ->common .scope
75- printf " %s::" , $func ->common .scope ->name->val
75+ printf " %s::" , (char*) $func ->common .scope ->name->val
7676 end
7777 end
7878
7979 if $func ->common .function_name
80- printf " %s(" , $func ->common .function_name->val
80+ printf " %s(" , (char*) $func ->common .function_name->val
8181 else
8282 printf " (main"
8383 end
@@ -109,7 +109,7 @@ define dump_bt
109109 printf " %f" , $zvalue ->value.dval
110110 end
111111 if $type == 6
112- ____print_str $zvalue ->value.str->val $zvalue ->value.str->len
112+ ____print_str (char*) $zvalue ->value.str->val $zvalue ->value.str->len
113113 end
114114 if $type == 7
115115 printf " array(%d)[%p]" , $zvalue ->value.arr->nNumOfElements, $zvalue
@@ -135,7 +135,7 @@ define dump_bt
135135 end
136136 if $func != 0
137137 if $func ->type == 2
138- printf " %s:%d " , $func ->op_array.filename->val, $ex ->opline->lineno
138+ printf " %s:%d " , (char*) $func ->op_array.filename->val, $ex ->opline->lineno
139139 else
140140 printf " [internal function]"
141141 end
@@ -186,7 +186,7 @@ define ____printzv_contents
186186 printf " double: %f" , $zvalue ->value.dval
187187 end
188188 if $type == 6
189- printf " string: %s" , $zvalue ->value.str->val
189+ printf " string: %s" , (char*) $zvalue ->value.str->val
190190 end
191191 if $type == 7
192192 printf " array: "
@@ -208,7 +208,7 @@ define ____printzv_contents
208208 set $handle = $zvalue ->value.obj.handle
209209 set $handlers = $zvalue ->value.obj.handlers
210210 set $zobj = $zvalue ->value.obj
211- set $cname = $zobj ->ce->name->val
211+ set $cname = (char*) $zobj ->ce->name->val
212212 printf " (%s) #%d" , $cname , $handle
213213 if ! $arg1
214214 if $handlers ->get_properties == &zend_std_get_properties
@@ -233,7 +233,7 @@ define ____printzv_contents
233233 set $name = $p ->key
234234 set $prop = (zend_property_info*)$p ->val.value.ptr
235235 set $val = (zval*)((char*)$zobj + $prop ->offset)
236- printf " %s => " , $name ->val
236+ printf " %s => " , (char*) $name ->val
237237 printzv $val
238238 set $k = $k + 1
239239 end
@@ -318,7 +318,8 @@ define ____print_ht
318318 set $n = $n - 1
319319 end
320320
321- if $ht ->u.v.flags & 4
321+ set $packed = $ht ->u.v.flags & 4
322+ if $packed
322323 printf " Packed"
323324 else
324325 printf " Hash"
@@ -329,36 +330,45 @@ define ____print_ht
329330 set $i = 0
330331 set $ind = $ind + 1
331332 while $i < $num
332- set $p = (Bucket*)($ht ->arData + $i )
333+ if $packed
334+ set $val = (zval*)($ht ->arPacked + $i )
335+ set $key = (zend_string*)0
336+ set $h = $i
337+ else
338+ set $bucket = (Bucket*)($ht ->arData + $i )
339+ set $val = &$bucket ->val
340+ set $key = $bucket ->key
341+ set $h = $bucket ->h
342+ end
333343 set $n = $ind
334- if $p ->val. u1.v.type > 0
344+ if $val -> u1.v.type > 0
335345 while $n > 0
336346 printf " "
337347 set $n = $n - 1
338348 end
339349 printf " [%d] " , $i
340- if $p -> key
341- ____print_str $p -> key->val $p -> key->len
350+ if $key
351+ ____print_str (char*) $ key ->val $key ->len
342352 printf " => "
343353 else
344- printf " %d => " , $p -> h
354+ printf " %d => " , $h
345355 end
346356 if $arg1 == 0
347- printf " %p\n " , (zval *)& $p -> val
357+ printf " %p\n " , $ val
348358 end
349359 if $arg1 == 1
350- set $zval = (zval *)& $p -> val
360+ set $zval = $ val
351361 ____printzv $zval 1
352362 end
353363 if $arg1 == 2
354- printf " %s\n " , (char*)$p ->val. value.ptr
364+ printf " %s\n " , (char*)$val -> value.ptr
355365 end
356366 if $arg1 == 3
357- set $func = (zend_function*)$p ->val. value.ptr
358- printf " \" %s\"\n " , $func ->common .function_name->val
367+ set $func = (zend_function*)$val -> value.ptr
368+ printf " \" %s\"\n " , (char*) $func ->common .function_name->val
359369 end
360370 if $arg1 == 4
361- set $const = (zend_constant *)$p ->val. value.ptr
371+ set $const = (zend_constant *)$val -> value.ptr
362372 ____printzv $const 1
363373 end
364374 end
@@ -413,15 +423,15 @@ define ____print_inh_class
413423 printf " final "
414424 end
415425 end
416- printf " class %s" , $ce ->name->val
426+ printf " class %s" , (char*) $ce ->name->val
417427 if $ce ->parent != 0
418- printf " extends %s" , $ce ->parent->name->val
428+ printf " extends %s" , (char*) $ce ->parent->name->val
419429 end
420430 if $ce ->num_interfaces != 0
421431 printf " implements"
422432 set $tmp = 0
423433 while $tmp < $ce ->num_interfaces
424- printf " %s" , $ce ->interfaces[$tmp ]->name->val
434+ printf " %s" , (char*) $ce ->interfaces[$tmp ]->name->val
425435 set $tmp = $tmp + 1
426436 if $tmp < $ce ->num_interfaces
427437 printf " ,"
@@ -433,10 +443,10 @@ end
433443
434444define ____print_inh_iface
435445 set $ce = $arg0
436- printf " interface %s" , $ce ->name->val
446+ printf " interface %s" , (char*) $ce ->name->val
437447 if $ce ->num_interfaces != 0
438448 set $ce = $ce ->interfaces[0 ]
439- printf " extends %s" , $ce ->name->val
449+ printf " extends %s" , (char*) $ce ->name->val
440450 else
441451 set $ce = 0
442452 end
@@ -472,11 +482,11 @@ end
472482
473483define print_pi
474484 set $pi = (zend_property_info *)$arg0
475- set $initial_offset = ((uint32_t)(zend_uintptr_t )(&((zend_object*)0 )->properties_table[(0 )]))
485+ set $initial_offset = ((uint32_t)(uintptr_t )(&((zend_object*)0 )->properties_table[(0 )]))
476486 set $ptr_to_val = (zval*)((char*)$pi ->ce->default_properties_table + $pi ->offset - $initial_offset )
477487 printf " [%p] {\n " , $pi
478488 printf " offset = %p\n " , $pi ->offset
479- printf " ce = [%p] %s\n " , $pi ->ce, $pi ->ce->name->val
489+ printf " ce = [%p] %s\n " , $pi ->ce, (char*) $pi ->ce->name->val
480490 printf " flags = 0x%x (" , $pi ->flags
481491 if $pi ->flags & 0x100
482492 printf " ZEND_ACC_PUBLIC"
@@ -598,7 +608,7 @@ define print_zstr
598608 set $maxlen = $zstr ->len
599609 end
600610 printf " string(%d) " , $zstr ->len
601- ____print_str $zstr ->val $zstr ->len $maxlen
611+ ____print_str (char*) $zstr ->val $zstr ->len $maxlen
602612 printf " \n "
603613end
604614
0 commit comments