This is an automated email from the ASF dual-hosted git repository. masayuki pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 5f99e482b5cfd9696fdd7d65100bdd69a2fbeff7 Author: Xiang Xiao <[email protected]> AuthorDate: Sat Dec 17 02:34:26 2022 +0800 sched/assert: Don't call running_task more than once and fix some minor style issue Signed-off-by: Xiang Xiao <[email protected]> --- sched/misc/assert.c | 51 +++++++++++++++++++++++---------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/sched/misc/assert.c b/sched/misc/assert.c index 95a00b7925..d2da0ccf94 100644 --- a/sched/misc/assert.c +++ b/sched/misc/assert.c @@ -27,15 +27,16 @@ #include <nuttx/arch.h> #include <nuttx/board.h> #include <nuttx/irq.h> +#include <nuttx/tls.h> + #include <nuttx/panic_notifier.h> -#include <nuttx/usb/usbdev_trace.h> #include <nuttx/syslog/syslog.h> -#include <nuttx/tls.h> +#include <nuttx/usb/usbdev_trace.h> #include <assert.h> #include <debug.h> +#include <stdio.h> #include <stdint.h> -#include <stdlib.h> #include "irq/irq.h" #include "sched/sched.h" @@ -97,10 +98,10 @@ static int assert_tracecallback(FAR struct usbtrace_s *trace, FAR void *arg) #ifdef CONFIG_ARCH_STACKDUMP /**************************************************************************** - * Name: stackdump + * Name: stack_dump ****************************************************************************/ -static void stackdump(uintptr_t sp, uintptr_t stack_top) +static void stack_dump(uintptr_t sp, uintptr_t stack_top) { uintptr_t stack; @@ -132,7 +133,7 @@ static void dump_stack(FAR const char *tag, uintptr_t sp, if (sp >= base && sp < top) { - stackdump(sp, top); + stack_dump(sp, top); } else { @@ -143,8 +144,8 @@ static void dump_stack(FAR const char *tag, uintptr_t sp, #ifdef CONFIG_STACK_COLORATION size_t remain = size - used; - base += remain; - size -= remain; + base += remain; + size -= remain; #endif #if CONFIG_ARCH_STACKDUMP_MAX_LENGTH > 0 @@ -154,7 +155,7 @@ static void dump_stack(FAR const char *tag, uintptr_t sp, } #endif - stackdump(base, base + size); + stack_dump(base, base + size); } } } @@ -163,9 +164,8 @@ static void dump_stack(FAR const char *tag, uintptr_t sp, * Name: showstacks ****************************************************************************/ -static void showstacks(void) +static void show_stacks(FAR struct tcb_s *rtcb) { - FAR struct tcb_s *rtcb = running_task(); uintptr_t sp = up_getsp(); /* Get the limits on the interrupt stack memory */ @@ -369,8 +369,6 @@ static void dump_task(FAR struct tcb_s *tcb, FAR void *arg) #ifdef CONFIG_SCHED_BACKTRACE static void dump_backtrace(FAR struct tcb_s *tcb, FAR void *arg) { - /* Show back trace */ - sched_dumpstack(tcb->pid); } #endif @@ -379,10 +377,9 @@ static void dump_backtrace(FAR struct tcb_s *tcb, FAR void *arg) * Name: showtasks ****************************************************************************/ -static void showtasks(void) +static void show_tasks(void) { -#if CONFIG_ARCH_INTERRUPTSTACK > 0 -# ifdef CONFIG_STACK_COLORATION +#if CONFIG_ARCH_INTERRUPTSTACK > 0 && defined(CONFIG_STACK_COLORATION) size_t stack_used = up_check_intstack(); size_t stack_filled = 0; @@ -393,7 +390,6 @@ static void showtasks(void) stack_filled = 10 * 100 * stack_used / CONFIG_ARCH_INTERRUPTSTACK; } -# endif #endif /* Dump interesting properties of each task in the crash environment */ @@ -444,7 +440,7 @@ static void showtasks(void) * Name: assert_end ****************************************************************************/ -static void assert_end(void) +static void assert_end(FAR struct tcb_s *rtcb) { /* Flush any buffered SYSLOG data */ @@ -452,7 +448,7 @@ static void assert_end(void) /* Are we in an interrupt handler or the idle task? */ - if (up_interrupt_context() || running_task()->flink == NULL) + if (up_interrupt_context() || rtcb->flink == NULL) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); @@ -507,19 +503,18 @@ void _assert(FAR const char *filename, int linenum) #ifdef CONFIG_SMP # if CONFIG_TASK_NAME_SIZE > 0 _alert("Assertion failed CPU%d at file: %s:%d task: %s %p\n", - up_cpu_index(), filename, linenum, rtcb->name, - rtcb->entry.main); + up_cpu_index(), filename, linenum, rtcb->name, rtcb->entry.main); # else - _alert("Assertion failed CPU%d at file: %s:%d\n", - up_cpu_index(), filename, linenum); + _alert("Assertion failed CPU%d at file: %s:%d task: %p\n", + up_cpu_index(), filename, linenum, rtcb->entry.main); # endif #else # if CONFIG_TASK_NAME_SIZE > 0 _alert("Assertion failed at file: %s:%d task: %s %p\n", filename, linenum, rtcb->name, rtcb->entry.main); # else - _alert("Assertion failed at file: %s:%d\n", - filename, linenum); + _alert("Assertion failed at file: %s:%d task: %p\n", + filename, linenum, rtcb->entry.main); # endif #endif @@ -546,10 +541,10 @@ void _assert(FAR const char *filename, int linenum) } #ifdef CONFIG_ARCH_STACKDUMP - showstacks(); + show_stacks(rtcb); #endif - showtasks(); + show_tasks(); #ifdef CONFIG_ARCH_USBDUMP /* Dump USB trace data */ @@ -561,5 +556,5 @@ void _assert(FAR const char *filename, int linenum) board_crashdump(up_getsp(), rtcb, filename, linenum); #endif - assert_end(); + assert_end(rtcb); }
