php_gdb: Add support for ZEND_AST_CALLABLE_CONVERT to ZendAstPrettyPrinter

This commit is contained in:
Tim Düsterhus 2025-02-25 09:25:23 +01:00
parent 0b42749621
commit 9466b3fbda
No known key found for this signature in database
2 changed files with 6 additions and 0 deletions

View file

@ -878,6 +878,8 @@ asm(
".ascii \" return self.val.cast(gdb.lookup_type('zend_ast_zval'))\\n\"\n"
".ascii \" if kind == enum_value('ZEND_AST_OP_ARRAY'):\\n\"\n"
".ascii \" return self.val.cast(gdb.lookup_type('zend_ast_op_array'))\\n\"\n"
".ascii \" if kind == enum_value('ZEND_AST_CALLABLE_CONVERT'):\\n\"\n"
".ascii \" return self.val.cast(gdb.lookup_type('zend_ast_fcc'))\\n\"\n"
".ascii \" if kind == enum_value('ZEND_AST_ZNODE'):\\n\"\n"
".ascii \" return self.val.cast(gdb.lookup_type('zend_ast_znode'))\\n\"\n"
".ascii \" if self.is_decl():\\n\"\n"
@ -906,6 +908,7 @@ asm(
".ascii \"pp_set.add_printer('zend_ast_decl', '^_zend_ast_decl$', ZendAstPrettyPrinter)\\n\"\n"
".ascii \"pp_set.add_printer('zend_ast_list', '^_zend_ast_list$', ZendAstPrettyPrinter)\\n\"\n"
".ascii \"pp_set.add_printer('zend_ast_op_array', '^_zend_ast_op_array$', ZendAstPrettyPrinter)\\n\"\n"
".ascii \"pp_set.add_printer('zend_ast_fcc', '^_zend_ast_fcc$', ZendAstPrettyPrinter)\\n\"\n"
".ascii \"pp_set.add_printer('zend_ast_zval', '^_zend_ast_zval$', ZendAstPrettyPrinter)\\n\"\n"
".ascii \"pp_set.add_printer('zend_ast_znode', '^_zend_ast_znode$', ZendAstPrettyPrinter)\\n\"\n"
".ascii \"\\n\"\n"

View file

@ -208,6 +208,8 @@ class ZendAstPrettyPrinter(gdb.printing.PrettyPrinter):
return self.val.cast(gdb.lookup_type('zend_ast_zval'))
if kind == enum_value('ZEND_AST_OP_ARRAY'):
return self.val.cast(gdb.lookup_type('zend_ast_op_array'))
if kind == enum_value('ZEND_AST_CALLABLE_CONVERT'):
return self.val.cast(gdb.lookup_type('zend_ast_fcc'))
if kind == enum_value('ZEND_AST_ZNODE'):
return self.val.cast(gdb.lookup_type('zend_ast_znode'))
if self.is_decl():
@ -236,6 +238,7 @@ pp_set.add_printer('zend_ast', '^_zend_ast$', ZendAstPrettyPrinter)
pp_set.add_printer('zend_ast_decl', '^_zend_ast_decl$', ZendAstPrettyPrinter)
pp_set.add_printer('zend_ast_list', '^_zend_ast_list$', ZendAstPrettyPrinter)
pp_set.add_printer('zend_ast_op_array', '^_zend_ast_op_array$', ZendAstPrettyPrinter)
pp_set.add_printer('zend_ast_fcc', '^_zend_ast_fcc$', ZendAstPrettyPrinter)
pp_set.add_printer('zend_ast_zval', '^_zend_ast_zval$', ZendAstPrettyPrinter)
pp_set.add_printer('zend_ast_znode', '^_zend_ast_znode$', ZendAstPrettyPrinter)