diff --git a/gdb-port/parser.py b/gdb-port/parser.py index 71544570e9713a8f5808f8d4d97f2306a1a33e03..0a4ef878706c149290d2ef4097bf0977ce67e122 100644 --- a/gdb-port/parser.py +++ b/gdb-port/parser.py @@ -294,10 +294,13 @@ class ParserStack: assert event != current_event #print("commit_at_pop: alloc:", alloc) # DEBUG #print("commit_at_pop: adding to parser", event[2].name, hex(event[2].address)) - event[2].add_mem_use(int(self.arena), alloc) + #event[2].add_mem_use(int(self.arena), alloc) pop_allocs[event[2].address] = pop_allocs.get(event[2].address, 0) + alloc #print("commit_at_pop: pop_allocs:", pop_allocs) # DEBUG + self.unclaimed_mem_use += pop_allocs.pop(0,0) # Account for allocs and remove with no parser, so it doesn't cause problems in the loop below + for parser_addr, alloc in pop_allocs.items(): + top_level_parse.parser_by_address(parser_addr).add_mem_use(int(self.arena), alloc) self.committed = len(self.stack_events)-1 return pop_allocs