samples: philosophers: Enable thread awareness
Enable thread awareness by default on philosophers sample. It shows gdb debugging output using the feature as reference. Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
This commit is contained in:
parent
2797afb749
commit
b6c2ae8048
3 changed files with 84 additions and 0 deletions
|
@ -63,3 +63,81 @@ Sample Output
|
||||||
Philosopher 5 [C:-2] THINKING [ 1700 ms ]
|
Philosopher 5 [C:-2] THINKING [ 1700 ms ]
|
||||||
|
|
||||||
Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`.
|
Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`.
|
||||||
|
|
||||||
|
Debug Threads
|
||||||
|
*************
|
||||||
|
|
||||||
|
The philosophers sample by default enables :kconfig:`CONFIG_DEBUG_THREAD_INFO`.
|
||||||
|
This allows tools like OpenOCD and J-link to inspect thread data using
|
||||||
|
``info threads``.
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/philosophers
|
||||||
|
:host-os: unix
|
||||||
|
:board: <board_name>
|
||||||
|
:goals: debug
|
||||||
|
:compact:
|
||||||
|
|
||||||
|
|
||||||
|
OpenOCD Sample Output
|
||||||
|
=====================
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
Thread 1 received signal SIGINT, Interrupt.
|
||||||
|
[Switching to Thread 537003160]
|
||||||
|
arch_cpu_idle () at zephyr/mainline/zephyr/arch/arm/core/aarch32/cpu_idle.S:107
|
||||||
|
107 cpsie i
|
||||||
|
(gdb) i threads
|
||||||
|
Id Target Id Frame
|
||||||
|
* 1 Thread 537003160 (Name: idle 00, prio:40,useropts:1) arch_cpu_idle () at zephyr/mainline/zephyr/arch/arm/core/aarch32/cpu_idle.S:107
|
||||||
|
Info : Getting thread 537002984 reg list
|
||||||
|
2 Thread 537002984 (Name: Philosopher 5, prio:-2,useropts:4) 0x08001404 in arch_irq_unlock (key=0) at zephyr/mainline/zephyr/include/arch/arm/aarch32/asm_inline_gcc.h:95
|
||||||
|
Info : Getting thread 537002808 reg list
|
||||||
|
3 Thread 537002808 (Name: Philosopher 4, prio:-1,useropts:4) 0x08001404 in arch_irq_unlock (key=0) at zephyr/mainline/zephyr/include/arch/arm/aarch32/asm_inline_gcc.h:95
|
||||||
|
Info : Getting thread 537002632 reg list
|
||||||
|
4 Thread 537002632 (Name: Philosopher 3, prio:0,useropts:4) 0x08001404 in arch_irq_unlock (key=0) at zephyr/mainline/zephyr/include/arch/arm/aarch32/asm_inline_gcc.h:95
|
||||||
|
Info : Getting thread 537002456 reg list
|
||||||
|
5 Thread 537002456 (Name: Philosopher 2, prio:1,useropts:4) 0x08001404 in arch_irq_unlock (key=0) at zephyr/mainline/zephyr/include/arch/arm/aarch32/asm_inline_gcc.h:95
|
||||||
|
Info : Getting thread 537002280 reg list
|
||||||
|
6 Thread 537002280 (Name: Philosopher 1, prio:2,useropts:4) 0x08001404 in arch_irq_unlock (key=0) at zephyr/mainline/zephyr/include/arch/arm/aarch32/asm_inline_gcc.h:95
|
||||||
|
Info : Getting thread 537002104 reg list
|
||||||
|
7 Thread 537002104 (Name: Philosopher 0, prio:3,useropts:4) 0x08001404 in arch_irq_unlock (key=0) at zephyr/mainline/zephyr/include/arch/arm/aarch32/asm_inline_gcc.h:95
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
Philosopher 0 [P: 3] STARVING
|
||||||
|
Philosopher 1 [P: 2] HOLDING ONE FORK
|
||||||
|
Philosopher 2 [P: 1] EATING [ 400 ms ]
|
||||||
|
Philosopher 3 [P: 0] THINKING [ 525 ms ]
|
||||||
|
Philosopher 4 [C:-1] HOLDING ONE FORK
|
||||||
|
Philosopher 5 [C:-2] EATING [ 625 ms ]
|
||||||
|
|
||||||
|
|
||||||
|
J-Link Sample Output
|
||||||
|
====================
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
Thread 2 received signal SIGTRAP, Trace/breakpoint trap.
|
||||||
|
[Switching to Thread 537920592]
|
||||||
|
arch_cpu_idle () at zephyr/mainline/zephyr/arch/arm/core/aarch32/cpu_idle.S:107
|
||||||
|
107 cpsie i
|
||||||
|
(gdb) i threads
|
||||||
|
Id Target Id Frame
|
||||||
|
* 2 Thread 537920592 (idle 00 UNKNOWN PRIO 40) arch_cpu_idle () at zephyr/mainline/zephyr/arch/arm/core/aarch32/cpu_idle.S:107
|
||||||
|
3 Thread 537919536 (Philosopher 0 PENDING PRIO 3) arch_swap (key=0) at zephyr/mainline/zephyr/arch/arm/core/aarch32/swap.c:53
|
||||||
|
4 Thread 537919712 (Philosopher 1 SUSPENDED PRIO 2) arch_swap (key=key@entry=0) at zephyr/mainline/zephyr/arch/arm/core/aarch32/swap.c:53
|
||||||
|
5 Thread 537919888 (Philosopher 2 SUSPENDED PRIO 1) arch_swap (key=key@entry=0) at zephyr/mainline/zephyr/arch/arm/core/aarch32/swap.c:53
|
||||||
|
6 Thread 537920064 (Philosopher 3 SUSPENDED PRIO 0) arch_swap (key=key@entry=0) at zephyr/mainline/zephyr/arch/arm/core/aarch32/swap.c:53
|
||||||
|
7 Thread 537920240 (Philosopher 4 PENDING PRIO 255) arch_swap (key=0) at zephyr/mainline/zephyr/arch/arm/core/aarch32/swap.c:53
|
||||||
|
8 Thread 537920416 (Philosopher 5 SUSPENDED PRIO 254) arch_swap (key=key@entry=0) at zephyr/mainline/zephyr/arch/arm/core/aarch32/swap.c:53
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
Philosopher 0 [P: 3] STARVING
|
||||||
|
Philosopher 1 [P: 2] EATING [ 475 ms ]
|
||||||
|
Philosopher 2 [P: 1] THINKING [ 700 ms ]
|
||||||
|
Philosopher 3 [P: 0] THINKING [ 525 ms ]
|
||||||
|
Philosopher 4 [C:-1] HOLDING ONE FORK
|
||||||
|
Philosopher 5 [C:-2] EATING [ 625 ms ]
|
||||||
|
|
|
@ -5,3 +5,6 @@ CONFIG_NUM_COOP_PRIORITIES=29
|
||||||
CONFIG_NUM_PREEMPT_PRIORITIES=40
|
CONFIG_NUM_PREEMPT_PRIORITIES=40
|
||||||
CONFIG_SCHED_SCALABLE=y
|
CONFIG_SCHED_SCALABLE=y
|
||||||
CONFIG_MP_NUM_CPUS=1
|
CONFIG_MP_NUM_CPUS=1
|
||||||
|
|
||||||
|
#Enable thread awareness for debugging tools supporting it
|
||||||
|
CONFIG_DEBUG_THREAD_INFO=y
|
||||||
|
|
|
@ -7,3 +7,6 @@ CONFIG_PM=y
|
||||||
CONFIG_TICKLESS_KERNEL=y
|
CONFIG_TICKLESS_KERNEL=y
|
||||||
|
|
||||||
CONFIG_MP_NUM_CPUS=1
|
CONFIG_MP_NUM_CPUS=1
|
||||||
|
|
||||||
|
#Enable thread awareness for debugging tools supporting it
|
||||||
|
CONFIG_DEBUG_THREAD_INFO=y
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue