mm: add invalid pid dump when malloc failed

We can dump the memory that has exited but
has not been released

Signed-off-by: ligd <liguiding1@xiaomi.com>
This commit is contained in:
ligd
2023-05-09 13:46:05 +08:00
committed by Xiang Xiao
parent 70cb62e2a3
commit 1a927a6cf3
5 changed files with 41 additions and 19 deletions
+9 -5
View File
@@ -30,6 +30,7 @@
#include <nuttx/kmalloc.h>
#include <nuttx/mm/mempool.h>
#include <nuttx/sched.h>
#include "kasan/kasan.h"
@@ -436,12 +437,15 @@ mempool_info_task(FAR struct mempool_s *pool,
list_for_every_entry(&pool->alist, buf, struct mempool_backtrace_s,
node)
{
if (buf->pid == dump->pid &&
buf->seqno >= dump->seqmin &&
buf->seqno <= dump->seqmax)
if (buf->pid == dump->pid ||
(dump->pid == MM_BACKTRACE_INVALID_PID &&
nxsched_get_tcb(buf->pid) == NULL))
{
info.aordblks++;
info.uordblks += pool->blocksize;
if (buf->seqno >= dump->seqmin && buf->seqno <= dump->seqmax)
{
info.aordblks++;
info.uordblks += pool->blocksize;
}
}
}
}