diff --git a/gdb-port/parser.py b/gdb-port/parser.py index 7fa2071ba5e7c9067a52b3f43cbbe302253dfacd..73c9838144770a294f2577cf190b353eb16e5a51 100644 --- a/gdb-port/parser.py +++ b/gdb-port/parser.py @@ -361,17 +361,18 @@ class ParserStack: print("commit_at_pop: pop_allocs:", { current_event[2].address: current_frame_alloc }) # DEBUG return { current_event[2].address: current_frame_alloc } + pop_allocs = {} + pop_allocs[current_event[2].address] = pop_allocs.get(current_event[2].address, 0) + current_frame_alloc + if len(ev_list) > 1: bytes_list = [ev[1] for ev in ev_list] differences = map(lambda smaller, bigger: bigger-smaller, bytes_list[:-1], bytes_list[1:]) - pop_allocs = {} for index, event in enumerate(ev_list[:-1]): alloc = next(differences) print("commit_at_pop: alloc:", alloc) # DEBUG event[2].add_mem_use(int(self.arena), alloc) pop_allocs[event[2].address] = pop_allocs.get(event[2].address, 0) + alloc - pop_allocs[current_event[2].address] = pop_allocs.get(current_event[2].address, 0) + current_frame_alloc print("commit_at_pop: pop_allocs:", pop_allocs) # DEBUG self.committed = len(self.stack_events)-1