; -------------------------------------------------------------------------------- ; @Title: Wind River Helix specific menu ; @Description: - ; @Author: DIE ; @Copyright: (c) 1989-2021 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: helix.m 7861 2022-07-29 13:45:42Z amerkle $ NAME "TASK.HELIX" IF !MENU.EXIST("TASK.HELIX") ( add menu ( popup "&Helix" ( menuitem "Display &Threads" "TASK.ThrList" default menuitem "Display &VMs" "TASK.VM" menuitem "Display Registry" "TASK.REGistry" menuitem "Display System Info" "TASK.SysInfo" menuitem "Display Core States" "TASK.CoreState" 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" ( if icd()||simulator() ( PRIVATE &yes dialog.yesno "Overwrite unused stack space" "with stack fill pattern?" entry &yes if !&yes enddo ) TASK.STacK.Init ) ) separator popup "Symbol &Autoloader" ( menuitem "List Components" "sYmbol.AutoLoad.List" menuitem "Check Now!" "sYmbol.AutoLoad.CHECK" menuitem "Set Loader Script" ( dialog ( header "sYmbol.AutoLoad.CHECKComManD" pos 0. 0. 40. 3. box "autoload batch script" pos 1. 1. 30. 1 cmmfile: edit "autoload.cmm" "" pos 32. 1. 7. 1. button "Browse..." ( PRIVATE &file dialog.file "*.cmm" entry %line &file dialog.set cmmfile "&file" ) pos 1. 3. 16. 1. checkon: checkbox "automatic check" "" pos 10. 4.5 8. defbutton "Ok" ( PRIVATE &cmm &cmm=dialog.string(cmmfile) sYmbol.AutoLoad.CHECKComManD "do &cmm " sYmbol.AutoLoad.CHECK ; trigger check manually if dialog.boolean(checkon) sYmbol.AutoLoad.CHECK ON ; automatic check enabled else sYmbol.AutoLoad.CHECK OFF ; automatic check disabled dialog.end ) pos 22. 4.5 8. button "Cancel" "dialog.end" ) ) ) separator MENUITEM "Display Task Tree" "TASK.List.TREE" MENUITEM "Display Core Activity" "CORE.List" ) 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 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 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 Hypervisor" "HELP __HV_WINDRIVER_" ) ) menu "task.tl" ( default menuitem "Display detailed" ( PRIVATE &magic &magic=address.offset(track.address()) TASK.ThrList &magic ) menuitem "Display context struct" ( PRIVATE &address &address=track.address() Var.View %Open %String (ctx_t*)(&address) ) separator menuitem "Display Stack Frame" ( PRIVATE &address &address=address.offset(track.address()) Frame /Locals /Caller /TASK &address ) menuitem "Display Registers" ( PRIVATE &address &address=address.offset(track.address()) Register /TASK &address ) menuitem "Switch Context" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) Register.TASK &nAddress ) separator menuitem "Add to Stack Cov" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.STacK.ADD &nAddress ) menuitem "Rm from Stack Cov" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.STacK.RM &nAddress ) separator menuitem "Dump thread entry" ( PRIVATE &address &address=track.address() Data.dump &address /Long /DIALOG ) ) menu "task.vm" ( default menuitem "Display detailed" ( PRIVATE &address &address=address.offset(track.address()) TASK.VM &address ) menuitem "Display VM struct" ( PRIVATE &address &address=track.address() Var.View %Open %String (board_t*)(&address) ) menuitem "Dump VM entry" ( PRIVATE &address &address=track.address() Data.dump &address /Long /DIALOG ) ) menu "task.bb" ( default menuitem "Display detailed" ( PRIVATE &address &address=address.offset(track.address()) TASK.BootBoard &address ) menuitem "Display boot board struct" ( PRIVATE &address &address=track.address() Var.View %Open %String (VBB_CONFIG*)(&address) ) menuitem "Dump boot board entry" ( PRIVATE &address &address=track.address() Data.dump &address /Long /DIALOG ) ) menu "task.rb" ( default menuitem "Display detailed" ( PRIVATE &address &address=address.offset(track.address()) TASK.RunBoard &address ) menuitem "Display runboard struct" ( PRIVATE &address &address=track.address() Var.View %Open %String (struct vmConfig*)(&address) ) menuitem "Dump runboard entry" ( PRIVATE &address &address=track.address() Data.dump &address /Long /DIALOG ) ) )