From 4e6f5be08a9b00b6afb0628d99ab7660605cc3bb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 24 Sep 2013 12:13:53 -0600 Subject: [PATCH] Stack monitor fixes --- system/stackmonitor/Makefile | 2 +- system/stackmonitor/stackmonitor.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/system/stackmonitor/Makefile b/system/stackmonitor/Makefile index 60bb7da03..e38935d32 100644 --- a/system/stackmonitor/Makefile +++ b/system/stackmonitor/Makefile @@ -41,7 +41,7 @@ ifeq ($(WINTOOL),y) INCDIROPT = -w endif -# USB Monitor Application +# Stack Monitor Application PRIORITY = SCHED_PRIORITY_DEFAULT STACKSIZE = 768 diff --git a/system/stackmonitor/stackmonitor.c b/system/stackmonitor/stackmonitor.c index 98039828c..653a2fdc4 100644 --- a/system/stackmonitor/stackmonitor.c +++ b/system/stackmonitor/stackmonitor.c @@ -91,6 +91,21 @@ static struct stkmon_state_s g_stackmonitor; * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: stkmon_task + ****************************************************************************/ + +static void stkmon_task(FAR struct tcb_s *tcb, FAR void *arg) +{ +#if CONFIG_NAME_MAX > 0 + syslog("%5d %6d %6d %s\n", + tcb->pid, tcb->adj_stack_size, up_check_tcbstack(tcb), tcb->name); +#else + syslog("%5d %6d %6d\n", + tcb->pid, tcb->adj_stack_size, up_check_tcbstack(tcb)); +#endif +} + static int stackmonitor_daemon(int argc, char **argv) { syslog(STKMON_PREFIX "Running: %d\n", g_stackmonitor.pid); @@ -100,6 +115,12 @@ static int stackmonitor_daemon(int argc, char **argv) while (!g_stackmonitor.stop) { sleep(CONFIG_SYSTEM_STACKMONITOR_INTERVAL); +#if CONFIG_NAME_MAX > 0 + syslog("%-5s %-6s %-6s %s\n", "PID", "SIZE", "USED", "THREAD NAME"); +#else + syslog("%-5s %-6s %-6s\n", "PID", "SIZE", "USED"); +#endif + sched_foreach(stkmon_task, NULL); } /* Stopped */