Skip to content

Commit 39cf276

Browse files
authored
php_gdb: Print some numeric fields as hexadecimal (php#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
1 parent 537ae4f commit 39cf276

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

main/debug_gdb_scripts.c

Lines changed: 6 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/gdb/php_gdb.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ def children(self):
4949
for field in self.val.type.fields():
5050
if field.name == 'val':
5151
yield ('val', format_zstr(self.val))
52+
elif field.name == 'h':
53+
yield (field.name, "0x%x" % self.val[field.name])
5254
else:
5355
yield (field.name, format_nested(self.val[field.name]))
5456

@@ -81,12 +83,11 @@ def to_string(self):
8183
def children(self):
8284
for field in self.val.type.fields():
8385
if field.name is None:
84-
name = '<anonymous>'
85-
val = self.val[field]
86+
yield ('<anonymous>', format_nested(self.val[field]))
87+
elif field.name == 'nTableMask':
88+
yield (field.name, "0x%x" % self.val[field.name])
8689
else:
87-
name = field.name
88-
val = self.val[field.name]
89-
yield (name, format_nested(val))
90+
yield (field.name, format_nested(self.val[field.name]))
9091

9192
pp_set.add_printer('zend_array', '^_zend_array$', ZendArrayPrettyPrinter)
9293

0 commit comments

Comments
 (0)