mirror of
https://github.com/apache/nuttx.git
synced 2026-05-28 03:45:50 +08:00
gdb/memdump:fixed the problem of inaccurate statistics
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
This commit is contained in:
+11
-5
@@ -354,12 +354,12 @@ class Memdump(gdb.Command):
|
|||||||
for entry in sq_for_every(pool["queue"]):
|
for entry in sq_for_every(pool["queue"]):
|
||||||
gdb.write("%12u%#*x\n" % (pool["blocksize"], self.align, entry))
|
gdb.write("%12u%#*x\n" % (pool["blocksize"], self.align, entry))
|
||||||
self.aordblks += 1
|
self.aordblks += 1
|
||||||
self.uordblks += pool["blocksize"]
|
self.uordblks += mempool_realblocksize(pool)
|
||||||
|
|
||||||
for entry in sq_for_every(pool["iqueue"]):
|
for entry in sq_for_every(pool["iqueue"]):
|
||||||
gdb.write("%12u%#*x\n" % (pool["blocksize"], self.align, entry))
|
gdb.write("%12u%#*x\n" % (pool["blocksize"], self.align, entry))
|
||||||
self.aordblks += 1
|
self.aordblks += 1
|
||||||
self.uordblks += pool["blocksize"]
|
self.uordblks += mempool_realblocksize(pool)
|
||||||
else:
|
else:
|
||||||
for buf in mempool_foreach(pool):
|
for buf in mempool_foreach(pool):
|
||||||
if (
|
if (
|
||||||
@@ -407,7 +407,7 @@ class Memdump(gdb.Command):
|
|||||||
gdb.execute(print_node)
|
gdb.execute(print_node)
|
||||||
return True
|
return True
|
||||||
self.aordblks += 1
|
self.aordblks += 1
|
||||||
self.uordblks += pool["blocksize"]
|
self.uordblks += mempool_realblocksize(pool)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def memnode_dump(self, node):
|
def memnode_dump(self, node):
|
||||||
@@ -457,6 +457,7 @@ class Memdump(gdb.Command):
|
|||||||
|
|
||||||
alloc_node = []
|
alloc_node = []
|
||||||
free_node = []
|
free_node = []
|
||||||
|
mempool_node = []
|
||||||
|
|
||||||
heap = gdb.parse_and_eval("g_mmheap")
|
heap = gdb.parse_and_eval("g_mmheap")
|
||||||
prev_node = None
|
prev_node = None
|
||||||
@@ -484,7 +485,9 @@ class Memdump(gdb.Command):
|
|||||||
gdb.execute(print_node)
|
gdb.execute(print_node)
|
||||||
return
|
return
|
||||||
|
|
||||||
if node.alloc:
|
if node.pid == PID_MM_MEMPOOL:
|
||||||
|
mempool_node.append(node)
|
||||||
|
elif node.alloc:
|
||||||
alloc_node.append(node)
|
alloc_node.append(node)
|
||||||
else:
|
else:
|
||||||
free_node.append(node)
|
free_node.append(node)
|
||||||
@@ -533,7 +536,10 @@ class Memdump(gdb.Command):
|
|||||||
for node in alloc_node:
|
for node in alloc_node:
|
||||||
if node.is_orphan():
|
if node.is_orphan():
|
||||||
self.memnode_dump(node)
|
self.memnode_dump(node)
|
||||||
elif pid == PID_MM_MEMPOOL or pid >= 0:
|
elif pid == PID_MM_MEMPOOL:
|
||||||
|
for node in mempool_node:
|
||||||
|
self.memnode_dump(node)
|
||||||
|
elif pid >= 0:
|
||||||
for node in alloc_node:
|
for node in alloc_node:
|
||||||
if node.pid == pid:
|
if node.pid == pid:
|
||||||
self.memnode_dump(node)
|
self.memnode_dump(node)
|
||||||
|
|||||||
Reference in New Issue
Block a user