mirror of
https://github.com/apache/nuttx.git
synced 2026-08-09 14:35:08 +00:00
RISC-V: Add missing code to dumpstate
Just add the kernel stack dumping for completeness
This commit is contained in:
parent
77e90d9c87
commit
44bec4cf8e
1 changed files with 34 additions and 3 deletions
|
|
@ -318,6 +318,9 @@ static void riscv_dumpstate(void)
|
|||
uintptr_t istackbase;
|
||||
uintptr_t istacksize;
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_KERNEL_STACK
|
||||
uintptr_t kstackbase = 0;
|
||||
#endif
|
||||
|
||||
/* Show back trace */
|
||||
|
||||
|
|
@ -395,18 +398,46 @@ static void riscv_dumpstate(void)
|
|||
_alert("stack size: %" PRIxREG "\n", ustacksize);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_KERNEL_STACK
|
||||
/* Does this thread have a kernel stack allocated? */
|
||||
|
||||
if (rtcb->xcp.kstack)
|
||||
{
|
||||
kstackbase = (uintptr_t)rtcb->xcp.kstack;
|
||||
|
||||
_alert("Kernel stack:\n");
|
||||
_alert(" base: %" PRIxREG "\n", kstackbase);
|
||||
_alert(" size: %" PRIxREG "\n", CONFIG_ARCH_KERNEL_STACKSIZE);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Dump the user stack if the stack pointer lies within the allocated user
|
||||
* stack memory.
|
||||
*/
|
||||
|
||||
if (sp >= ustackbase && sp < ustackbase + ustacksize)
|
||||
{
|
||||
_alert("ERROR: Stack pointer is not within allocated stack\n");
|
||||
riscv_stackdump(ustackbase, ustackbase + ustacksize);
|
||||
_alert("User Stack\n");
|
||||
riscv_stackdump(sp, ustackbase + ustacksize);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_KERNEL_STACK
|
||||
/* Dump the kernel stack if the stack pointer lies within the allocated
|
||||
* kernel stack memory.
|
||||
*/
|
||||
|
||||
else if (kstackbase != 0 &&
|
||||
sp >= kstackbase &&
|
||||
sp < kstackbase + CONFIG_ARCH_KERNEL_STACKSIZE)
|
||||
{
|
||||
_alert("Kernel Stack\n");
|
||||
riscv_stackdump(sp, kstackbase + CONFIG_ARCH_KERNEL_STACKSIZE);
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
riscv_stackdump(sp, ustackbase + ustacksize);
|
||||
_alert("ERROR: Stack pointer is not within allocated stack\n");
|
||||
riscv_stackdump(ustackbase, ustackbase + ustacksize);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue