From 7f6d870d82699d58a4715db3a461ba7f4deaf785 Mon Sep 17 00:00:00 2001 From: pompolic <pompolic@special-circumstanc.es> Date: Mon, 20 Sep 2021 18:43:56 +0200 Subject: [PATCH] Clean up some more .parse_and_eval()s --- gdb-port/parser-type-instrumentation-gdb.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gdb-port/parser-type-instrumentation-gdb.py b/gdb-port/parser-type-instrumentation-gdb.py index 6dc9b88..25dee8a 100644 --- a/gdb-port/parser-type-instrumentation-gdb.py +++ b/gdb-port/parser-type-instrumentation-gdb.py @@ -541,15 +541,16 @@ class PermutationEnv(HParserEnv): super().__init__(parser, top_level_parse) self.parser = parser self.member_parsers = [] + parser_val = gdb.Value(parser.address).cast(self.hparser_p_t).dereference() #frame = gdb.selected_frame() h_sequence_t = gdb.lookup_type("HSequence") h_sequence_p_t = h_sequence_t.pointer() # Get the parser object - parser_obj = gdb.parse_and_eval("*parser") + #parser_obj = gdb.parse_and_eval("*parser") # Get parser_obj.env, cast it to HSequence *, then dereference - p_env = parser_obj['env'].cast(h_sequence_p_t).dereference() + p_env = parser_val['env'].cast(h_sequence_p_t).dereference() # Get length of HSequence num_parsers = p_env['len'] # Get the array of parsers in the sequence @@ -611,15 +612,16 @@ class SequenceEnv(HParserEnv): super().__init__(parser, top_level_parse) self.parser = parser self.member_parsers = [] + parser_val = gdb.Value(parser.address).cast(self.hparser_p_t).dereference() #frame = gdb.selected_frame() h_sequence_t = gdb.lookup_type("HSequence") h_sequence_p_t = h_sequence_t.pointer() # Get the parser object - parser_obj = gdb.parse_and_eval("*parser") + #parser_obj = gdb.parse_and_eval("*parser") # Get parser_obj.env, cast it to HSequence *, then dereference - p_env = parser_obj['env'].cast(h_sequence_p_t).dereference() + p_env = parser_val['env'].cast(h_sequence_p_t).dereference() # Get length of HSequence num_parsers = p_env['len'] # Get the array of parsers in the sequence -- GitLab