mirror of
https://github.com/apache/nuttx.git
synced 2026-05-30 05:16:47 +08:00
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:
@@ -83,6 +83,9 @@ def mm_foreach(heap):
|
|||||||
yield node
|
yield node
|
||||||
next = int(node) + mm_nodesize(node["size"])
|
next = int(node) + mm_nodesize(node["size"])
|
||||||
next = gdb.Value(next).cast(mm_allocnode_type.pointer())
|
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
|
node = next
|
||||||
|
|
||||||
|
|
||||||
@@ -460,6 +463,12 @@ class Memdump(gdb.Command):
|
|||||||
mempool_node = []
|
mempool_node = []
|
||||||
|
|
||||||
heap = gdb.parse_and_eval("g_mmheap")
|
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
|
prev_node = None
|
||||||
|
|
||||||
for gdb_node in mm_foreach(heap):
|
for gdb_node in mm_foreach(heap):
|
||||||
@@ -492,12 +501,6 @@ class Memdump(gdb.Command):
|
|||||||
else:
|
else:
|
||||||
free_node.append(node)
|
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 = {
|
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_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",
|
PID_MM_MEMPOOL: "Dump mempool:\n",
|
||||||
|
|||||||
Reference in New Issue
Block a user