Files
2025-10-14 09:52:32 +09:00

218 lines
4.9 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: QXK specific menu
; @Description: -
; @Author: DIE YDA
; @Copyright: (c) 1989-2017 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: qxk.m 7861 2022-07-29 13:45:42Z amerkle $
NAME "TASK.QXK"
IF !MENU.EXIST("TASK.QXK")
(
add
menu
(
POPUP "QXK"
(
default
menuitem "Display &Active Objects" "TASK.ActiveObj"
separator
menuitem "Display &Extended Threads" "TASK.EXtTHRead"
menuitem "Display &Mutex"
(
PRIVATE &dir &command
&dir=TASK.GETDIR()
&command="&dir"+"\objdialog.cmm Mutex MuTeX"
Do &command
)
menuitem "Display &Semaphore"
(
PRIVATE &dir &command
&dir=TASK.GETDIR()
&command="&dir"+"\objdialog.cmm Semaphore SEMaphore"
Do &command
)
menuitem "Display Memory &Pools" "TASK.MEMPool"
separator
popup "&Stack Coverage"
(
menuitem "&List Stacks" "TASK.STacK.view"
menuitem "Add Task" "TASK.STacK.ADD"
menuitem "Remove Task" "TASK.STacK.RM"
menuitem "Reset Coverage"
(
PRIVATE &yes
DIALOG.YESNO "Overwrite unused stack space" "with stack fill pattern?"
ENTRY &yes
IF !&yes
ENDDO
TASK.STacK.Init
)
)
)
popup "Trace"
(
popup "[:alist]List"
(
separator
menuitem "&Task Switches" "Trace.List List.TASK"
menuitem "&Default and Tasks" "Trace.List List.TASK DEFault"
)
)
popup "Perf"
(
separator
popup "&Task Runtime"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
)
if a.mode.flow()
(
Break.Delete /TraceEnable
Break.Set C:0x1F:::task.config(magic) /TraceEnable
)
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASK"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASK"
menuitem "[:achart]Tracking with Trace &List"
(
Trace.List List.TASK DEFault /Track
Trace.CHART.TASK /Track
)
)
popup "Task &Function Runtime"
(
menuitem "&Prepare"
(
if t.method.analyzer()
(
Analyzer.AutoInit on
Analyzer.STATistic.PreFetch on
)
if a.mode.flow()
(
Break.Delete /TraceData
Break.Set C:0x1F:::task.config(magic) /TraceData
)
)
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKFUNC"
menuitem "[:perf]Show as &Tree" "Trace.STATistic.TASKTREE"
menuitem "[:perf]Show &Detailed Tree" "Trace.STATistic.TASKTREE ALL"
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKFUNC"
menuitem "[:alist]Show N&esting" "Trace.List List.TASK FUNC TI.FUNC"
)
)
popup "&Help"
(
MENUITEM "[:manual]OS Awareness Manual QXK" "HELP __RTOS_QXK_"
)
)
menu "task.exthr"
(
default
menuitem "Display task struct"
(
PRIVATE &address
&address=track.address()
Var.View %Open %String (QXThread *)(&address)
)
separator
menuitem "Display Stack Frame"
(
PRIVATE &address
&address=address.offset(track.address())
Var.Frame /Locals /Caller /Task &address
)
menuitem "Display Registers"
(
PRIVATE &address
&address=address.offset(track.address())
Register /Task &address
)
menuitem "Switch Context" "Register.TASK address.offset(track.address())"
separator
menuitem "Dump task entry"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.sem"
(
default
menuitem "Display Semaphore struct"
(
PRIVATE &address
&address=track.address()
Var.View %Open %String (QXSemaphore *)(&address)
)
separator
menuitem "Dump Semaphore entry"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.mtx"
(
default
menuitem "Display Mutex struct"
(
PRIVATE &address
&address=track.address()
Var.View %Open %String (QXMutex *)(&address)
)
separator
menuitem "Dump Mutex entry"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.ao"
(
default
menuitem "Display Active Object struct"
(
PRIVATE &address
&address=track.address()
Var.View %Open %String (QActive *)(&address)
)
separator
menuitem "Dump Active Object entry"
(
PRIVATE &address
&address=address.offset(track.address())
Data.dump &address /l /dialog
)
)
menu "task.memp"
(
default
menuitem "View mem pool struct"
(
PRIVATE &magic
&magic=address.offset(track.address())
Var.View %Open (QMPool)*&magic
)
menuitem "Dump mem pool struct"
(
PRIVATE &magic
&magic=address.offset(track.address())
Data.dump &magic /Long /dialog
)
)
)