diff --git a/gdb-port/parser-type-instrumentation-gdb.py b/gdb-port/parser-type-instrumentation-gdb.py index 6dc9b882518485cd9cc2b5e14412cf31cd018787..25dee8aa21e50d77117a1e9f6734ba060c52f0b3 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