mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
php_gdb: Print some numeric fields as hexadecimal (#18925)
* php_gdb: Print `zend_string*`’s `h` field as hexadecimal A decimal representation of a hash value is not particularly meaningful and makes it harder to compare hash values. * php_gdb: Print `HashTable*`’s `nTableMask` field as hexadecimal
This commit is contained in:
parent
537ae4f990
commit
39cf27689b
2 changed files with 12 additions and 10 deletions
11
main/debug_gdb_scripts.c
generated
11
main/debug_gdb_scripts.c
generated
|
@ -719,6 +719,8 @@ asm(
|
||||||
".ascii \" for field in self.val.type.fields():\\n\"\n"
|
".ascii \" for field in self.val.type.fields():\\n\"\n"
|
||||||
".ascii \" if field.name == 'val':\\n\"\n"
|
".ascii \" if field.name == 'val':\\n\"\n"
|
||||||
".ascii \" yield ('val', format_zstr(self.val))\\n\"\n"
|
".ascii \" yield ('val', format_zstr(self.val))\\n\"\n"
|
||||||
|
".ascii \" elif field.name == 'h':\\n\"\n"
|
||||||
|
".ascii \" yield (field.name, \\\"0x%x\\\" % self.val[field.name])\\n\"\n"
|
||||||
".ascii \" else:\\n\"\n"
|
".ascii \" else:\\n\"\n"
|
||||||
".ascii \" yield (field.name, format_nested(self.val[field.name]))\\n\"\n"
|
".ascii \" yield (field.name, format_nested(self.val[field.name]))\\n\"\n"
|
||||||
".ascii \"\\n\"\n"
|
".ascii \"\\n\"\n"
|
||||||
|
@ -751,12 +753,11 @@ asm(
|
||||||
".ascii \" def children(self):\\n\"\n"
|
".ascii \" def children(self):\\n\"\n"
|
||||||
".ascii \" for field in self.val.type.fields():\\n\"\n"
|
".ascii \" for field in self.val.type.fields():\\n\"\n"
|
||||||
".ascii \" if field.name is None:\\n\"\n"
|
".ascii \" if field.name is None:\\n\"\n"
|
||||||
".ascii \" name = '<anonymous>'\\n\"\n"
|
".ascii \" yield ('<anonymous>', format_nested(self.val[field]))\\n\"\n"
|
||||||
".ascii \" val = self.val[field]\\n\"\n"
|
".ascii \" elif field.name == 'nTableMask':\\n\"\n"
|
||||||
|
".ascii \" yield (field.name, \\\"0x%x\\\" % self.val[field.name])\\n\"\n"
|
||||||
".ascii \" else:\\n\"\n"
|
".ascii \" else:\\n\"\n"
|
||||||
".ascii \" name = field.name\\n\"\n"
|
".ascii \" yield (field.name, format_nested(self.val[field.name]))\\n\"\n"
|
||||||
".ascii \" val = self.val[field.name]\\n\"\n"
|
|
||||||
".ascii \" yield (name, format_nested(val))\\n\"\n"
|
|
||||||
".ascii \"\\n\"\n"
|
".ascii \"\\n\"\n"
|
||||||
".ascii \"pp_set.add_printer('zend_array', '^_zend_array$', ZendArrayPrettyPrinter)\\n\"\n"
|
".ascii \"pp_set.add_printer('zend_array', '^_zend_array$', ZendArrayPrettyPrinter)\\n\"\n"
|
||||||
".ascii \"\\n\"\n"
|
".ascii \"\\n\"\n"
|
||||||
|
|
|
@ -49,6 +49,8 @@ class ZendStringPrettyPrinter(gdb.printing.PrettyPrinter):
|
||||||
for field in self.val.type.fields():
|
for field in self.val.type.fields():
|
||||||
if field.name == 'val':
|
if field.name == 'val':
|
||||||
yield ('val', format_zstr(self.val))
|
yield ('val', format_zstr(self.val))
|
||||||
|
elif field.name == 'h':
|
||||||
|
yield (field.name, "0x%x" % self.val[field.name])
|
||||||
else:
|
else:
|
||||||
yield (field.name, format_nested(self.val[field.name]))
|
yield (field.name, format_nested(self.val[field.name]))
|
||||||
|
|
||||||
|
@ -81,12 +83,11 @@ class ZendArrayPrettyPrinter(gdb.printing.PrettyPrinter):
|
||||||
def children(self):
|
def children(self):
|
||||||
for field in self.val.type.fields():
|
for field in self.val.type.fields():
|
||||||
if field.name is None:
|
if field.name is None:
|
||||||
name = '<anonymous>'
|
yield ('<anonymous>', format_nested(self.val[field]))
|
||||||
val = self.val[field]
|
elif field.name == 'nTableMask':
|
||||||
|
yield (field.name, "0x%x" % self.val[field.name])
|
||||||
else:
|
else:
|
||||||
name = field.name
|
yield (field.name, format_nested(self.val[field.name]))
|
||||||
val = self.val[field.name]
|
|
||||||
yield (name, format_nested(val))
|
|
||||||
|
|
||||||
pp_set.add_printer('zend_array', '^_zend_array$', ZendArrayPrettyPrinter)
|
pp_set.add_printer('zend_array', '^_zend_array$', ZendArrayPrettyPrinter)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue