memdump.py:add some error info to mmforeach and try dump mempool frist

Signed-off-by: anjiahao <anjiahao@xiaomi.com>
This commit is contained in:
anjiahao
2024-09-12 17:11:44 +08:00
committed by Xiang Xiao
parent 8adbf6c504
commit 160f61cd4d
+9 -6
View File
@@ -83,6 +83,9 @@ def mm_foreach(heap):
yield node
next = int(node) + mm_nodesize(node["size"])
next = gdb.Value(next).cast(mm_allocnode_type.pointer())
if node == next:
gdb.write(f"Error: maybe have memory fault on {hex(node)}\n")
break
node = next
@@ -460,6 +463,12 @@ class Memdump(gdb.Command):
mempool_node = []
heap = gdb.parse_and_eval("g_mmheap")
if heap.type.has_key("mm_mpool"):
if self.mempool_dump(
heap["mm_mpool"], pid, seqmin, seqmax, address, simple, detail
):
return
prev_node = None
for gdb_node in mm_foreach(heap):
@@ -492,12 +501,6 @@ class Memdump(gdb.Command):
else:
free_node.append(node)
if heap.type.has_key("mm_mpool"):
if self.mempool_dump(
heap["mm_mpool"], pid, seqmin, seqmax, address, simple, detail
):
return
title_dict = {
PID_MM_ALLOC: "Dump all used memory node info, use '\x1b[33;1m*\x1b[m' mark pid does not exist:\n",
PID_MM_MEMPOOL: "Dump mempool:\n",