From 581edb82fd0f103a3e70720145fc15a0cccb0aaf Mon Sep 17 00:00:00 2001 From: pompolic <pompolic@special-circumstanc.es> Date: Tue, 9 May 2023 23:04:29 +0200 Subject: [PATCH] Aggregate allocs per parser in ParserStack.pop() --- gdb-port/parser.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gdb-port/parser.py b/gdb-port/parser.py index 7154457..0a4ef87 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 -- GitLab