From 9466b3fbda294a40bf403cbd091cb8b64cff446d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Tue, 25 Feb 2025 09:25:23 +0100 Subject: [PATCH] php_gdb: Add support for `ZEND_AST_CALLABLE_CONVERT` to `ZendAstPrettyPrinter` --- main/debug_gdb_scripts.c | 3 +++ scripts/gdb/php_gdb.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/main/debug_gdb_scripts.c b/main/debug_gdb_scripts.c index 4a2e76c8a0c..092a57c3f7e 100644 --- a/main/debug_gdb_scripts.c +++ b/main/debug_gdb_scripts.c @@ -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" diff --git a/scripts/gdb/php_gdb.py b/scripts/gdb/php_gdb.py index dc12599538b..c39ef95e3e0 100644 --- a/scripts/gdb/php_gdb.py +++ b/scripts/gdb/php_gdb.py @@ -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)