531 lines
14 KiB
Plaintext
531 lines
14 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: NetBSD specific menu
|
|
; @Description: -
|
|
; @Author: DIE
|
|
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; --------------------------------------------------------------------------------
|
|
; $Id: netbsd.men 18850 2022-01-26 18:41:29Z bschroefel $
|
|
|
|
|
|
add
|
|
menu
|
|
(
|
|
popup "&NetBSD"
|
|
(
|
|
default
|
|
menuitem "Display &Processes" "TASK.Process"
|
|
menuitem "Display &LWPs" "TASK.Lwp"
|
|
separator
|
|
popup "&Process Debugging"
|
|
(
|
|
menuitem "&Load Symbols..."
|
|
(
|
|
dialog
|
|
(
|
|
header "TASK.sYmbol.LOAD"
|
|
pos 0. 0. 30. 3.
|
|
box "Process name"
|
|
pos 1. 1. 20. 1.
|
|
procl: defedit "" ""
|
|
pos 22. 1. 7. 1.
|
|
button "Browse..."
|
|
(
|
|
dialog.file "*"
|
|
entry %line &file
|
|
dialog.set procl "&file"
|
|
)
|
|
pos 6. 3. 7. 1.
|
|
defbutton "Ok"
|
|
(
|
|
local &procl &cwd
|
|
&procl=dialog.string(procl)
|
|
TASK.sYmbol.LOAD "&procl"
|
|
dialog.end
|
|
)
|
|
pos 17. 3. 7. 1.
|
|
button "Cancel" "dialog.end"
|
|
)
|
|
)
|
|
menuitem "&Delete Symbols..."
|
|
(
|
|
dialog
|
|
(
|
|
header "TASK.sYmbol.DELete"
|
|
pos 0. 0. 30. 3.
|
|
box "Process name"
|
|
pos 1. 1. 20. 1.
|
|
procd: defedit "" ""
|
|
pos 22. 1. 7. 1.
|
|
button "Browse..."
|
|
(
|
|
dialog.file "*"
|
|
entry %line &file
|
|
dialog.set procd "&file"
|
|
)
|
|
pos 6. 3. 7. 1.
|
|
defbutton "Ok"
|
|
(
|
|
local &procd
|
|
&procd=dialog.string(procd)
|
|
TASK.sYmbol.DELete "&procd"
|
|
dialog.end
|
|
)
|
|
pos 17. 3. 7. 1.
|
|
button "Cancel" "dialog.end"
|
|
)
|
|
)
|
|
popup "&Watch Processes"
|
|
(
|
|
menuitem "&Add..."
|
|
(
|
|
dialog
|
|
(
|
|
header "TASK.Watch.Add"
|
|
pos 0. 0. 24. 3.
|
|
box "Process name"
|
|
pos 1. 1. 22. 1.
|
|
wproca: defedit "" ""
|
|
pos 2. 3. 7. 1.
|
|
defbutton "Ok"
|
|
(
|
|
local &wproca
|
|
&wproca=dialog.string(wproca)
|
|
TASK.Watch.View "&wproca"
|
|
dialog.end
|
|
)
|
|
pos 15. 3. 7. 1.
|
|
button "Cancel" "dialog.end"
|
|
)
|
|
)
|
|
menuitem "&Remove..."
|
|
(
|
|
dialog
|
|
(
|
|
header "TASK.Watch.DELete"
|
|
pos 0. 0. 24. 3.
|
|
box "Process name"
|
|
pos 1. 1. 22. 1.
|
|
wprocd: defedit "" ""
|
|
pos 2. 3. 7. 1.
|
|
defbutton "Ok"
|
|
(
|
|
local &wprocd
|
|
&wprocd=dialog.string(wprocd)
|
|
TASK.Watch.DELete "&wprocd"
|
|
dialog.end
|
|
)
|
|
pos 15. 3. 7. 1.
|
|
button "Cancel" "dialog.end"
|
|
)
|
|
)
|
|
)
|
|
separator
|
|
menuitem "Scan Process MMU Pages..."
|
|
(
|
|
dialog
|
|
(
|
|
;header "MMU.TaskPageTable.SCAN"
|
|
header "TASK.MMU.SCAN"
|
|
pos 0. 0. 24. 3.
|
|
box "Process name"
|
|
pos 1. 1. 22. 1.
|
|
wproca: defedit "" ""
|
|
pos 2. 3. 7. 1.
|
|
defbutton "Ok"
|
|
(
|
|
local &wproca
|
|
&wproca=dialog.string(wproca)
|
|
TASK.MMU.SCAN "&wproca"
|
|
;MMU.TaskPageTable.SCAN "&wproca"
|
|
dialog.end
|
|
)
|
|
pos 15. 3. 7. 1.
|
|
button "Cancel" "dialog.end"
|
|
)
|
|
)
|
|
)
|
|
separator
|
|
popup "&Autoloader"
|
|
(
|
|
menuitem "List Components" "sYmbol.AutoLoad.List"
|
|
menuitem "Check Now!" "sYmbol.AutoLoad.CHECK"
|
|
menuitem "Set Loader Script"
|
|
(
|
|
dialog
|
|
(
|
|
header "sYmbol.AutoLoad.CHECKLINUX"
|
|
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..."
|
|
(
|
|
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"
|
|
(
|
|
local &log &cmm
|
|
&cmm=dialog.string(cmmfile)
|
|
sYmbol.AutoLoad.CHECKLINUX "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"
|
|
)
|
|
)
|
|
menuitem "Set Components Checked"
|
|
(
|
|
dialog
|
|
(
|
|
header "TASK.sYmbol.Option AutoLoad"
|
|
pos 0. 0. 25.
|
|
proc: checkbox "Process (Processes)"
|
|
(
|
|
if dialog.boolean(proc)
|
|
TASK.sYmbol.Option AutoLoad Process
|
|
else
|
|
TASK.sYmbol.Option AutoLoad NoProcess
|
|
)
|
|
lib: checkbox "Library (All Libraries)"
|
|
(
|
|
if dialog.boolean(lib)
|
|
TASK.sYmbol.Option AutoLoad Library
|
|
else
|
|
TASK.sYmbol.Option AutoLoad NoLibrary
|
|
dialog.set clib "FALSE"
|
|
)
|
|
clib: checkbox "CurrLib (Libraries of Current Process)"
|
|
(
|
|
if dialog.boolean(clib)
|
|
TASK.sYmbol.Option AutoLoad CurrLib
|
|
else
|
|
TASK.sYmbol.Option AutoLoad NoLibrary
|
|
dialog.set lib "FALSE"
|
|
)
|
|
)
|
|
dialog.set proc ((task.y.o(autoload)&0x1)!=0)
|
|
dialog.set lib ((task.y.o(autoload)&0x2)!=0)
|
|
dialog.set clib ((task.y.o(autoload)&0x4)!=0)
|
|
)
|
|
)
|
|
separator
|
|
menuitem "&NetBSD Terminal"
|
|
(
|
|
if !window.name(term)
|
|
(
|
|
winpos ,,,,,, term
|
|
TERM
|
|
)
|
|
else
|
|
wintop term
|
|
)
|
|
menuitem "Configure Terminal..."
|
|
(
|
|
if window.name(term)
|
|
dialog.ok "Please close terminal window first!"
|
|
else
|
|
(
|
|
dialog
|
|
(
|
|
header "TERM.Protocol"
|
|
pos 0. 0. 9.
|
|
tp.be: choosebox "BufferE"
|
|
(
|
|
dialog.disable tp.com.dev
|
|
dialog.disable tp.com.bd
|
|
dialog.enable tp.be.out
|
|
dialog.enable tp.be.in
|
|
)
|
|
pos 10. 0. 5.
|
|
text "out:"
|
|
pos 15. 0. 6.
|
|
tp.be.out: edit "T32OUTBUF" ""
|
|
pos 23. 0. 6.
|
|
text "in:"
|
|
pos 29. 0. 6.
|
|
tp.be.in: edit "T32INBUF" ""
|
|
pos 0. 1. 9.
|
|
tp.dcc: choosebox "DCC"
|
|
(
|
|
dialog.disable tp.com.dev
|
|
dialog.disable tp.com.bd
|
|
dialog.disable tp.be.out
|
|
dialog.disable tp.be.in
|
|
)
|
|
pos 0. 2. 9.
|
|
tp.com: choosebox "COM"
|
|
(
|
|
dialog.disable tp.be.out
|
|
dialog.disable tp.be.in
|
|
dialog.enable tp.com.dev
|
|
dialog.enable tp.com.bd
|
|
)
|
|
pos 10. 2. 5.
|
|
text "device:"
|
|
pos 15. 2. 6.
|
|
tp.com.dev: edit "COM1" ""
|
|
pos 23. 2. 6.
|
|
text "baudrate:"
|
|
pos 29. 2. 6.
|
|
tp.com.bd: edit "115200." ""
|
|
pos 9. 3.5 7.
|
|
defbutton "Ok"
|
|
(
|
|
&tpbeout=dialog.string(tp.be.out)
|
|
&tpbein=dialog.string(tp.be.in)
|
|
&tpcomdev=dialog.string(tp.com.dev)
|
|
&tpcombd=dialog.string(tp.com.bd)
|
|
if dialog.boolean(tp.be)
|
|
TERM.METHOD BufferE &tpbeout &tpbein
|
|
else if dialog.boolean(tp.dcc)
|
|
TERM.METHOD DCC
|
|
else if dialog.boolean(tp.com)
|
|
TERM.METHOD COM &tpcomdev &tpcombd 8 NONE 1STOP NONE
|
|
dialog.end
|
|
)
|
|
pos 19. 3.5 7.
|
|
button "Cancel" "dialog.end"
|
|
)
|
|
dialog.disable tp.be.out
|
|
dialog.disable tp.be.in
|
|
dialog.disable tp.com.dev
|
|
dialog.disable tp.com.bd
|
|
if cpufamily()!="ARM"
|
|
dialog.disable tp.dcc
|
|
)
|
|
)
|
|
)
|
|
popup "Trace"
|
|
(
|
|
popup "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 (ice()||fire())&&!a.mode.flow()
|
|
(
|
|
Analyzer.ReProgram
|
|
(
|
|
Sample.Enable if AlphaBreak&&Write
|
|
)
|
|
Break.Delete /Alpha
|
|
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
|
|
)
|
|
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 (ice()||fire())&&!a.mode.flow()
|
|
(
|
|
if a.config.hac()
|
|
(
|
|
Analyzer.ReProgram
|
|
(
|
|
Sample.Enable if AlphaBreak
|
|
Sample.Enable if BetaBreak
|
|
Mark.A if AlphaBreak
|
|
Mark.B if BetaBreak
|
|
)
|
|
)
|
|
else
|
|
(
|
|
Analyzer.ReProgram
|
|
(
|
|
Sample.Enable if AlphaBreak||BetaBreak
|
|
Mark.A if AlphaBreak
|
|
Mark.B if BetaBreak
|
|
)
|
|
)
|
|
Break.Delete /Alpha /Beta /Charly
|
|
Break.SetFunc
|
|
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
|
|
)
|
|
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 "Task &Status"
|
|
(
|
|
menuitem "&Prepare"
|
|
(
|
|
if t.method.analyzer()
|
|
(
|
|
Analyzer.AutoInit on
|
|
)
|
|
if (ice()||fire())&&!a.mode.flow()
|
|
(
|
|
Analyzer.ReProgram
|
|
(
|
|
Sample.Enable if AlphaBreak&&Write
|
|
)
|
|
Break.Delete /Alpha
|
|
Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
|
|
TASK.TASKState
|
|
)
|
|
)
|
|
menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKSTATE"
|
|
menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKSTATE"
|
|
menuitem "[:achart]Tracking with Trace &List"
|
|
(
|
|
Trace.List List.TASK DEFault /Track
|
|
Trace.CHART.TASKSTATE /Track
|
|
)
|
|
)
|
|
)
|
|
popup "&Help"
|
|
(
|
|
menuitem "[:manual]NetBSD Awareness Manual" "HELP __RTOS_NETBSD_"
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.p"
|
|
(
|
|
default
|
|
menuitem "Display detailed"
|
|
(
|
|
&address=address.offset(track.address())
|
|
TASK.Process &address
|
|
)
|
|
menuitem "Display process struct"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Var.View %m %s (struct proc)*&address
|
|
)
|
|
separator
|
|
menuitem "Load Process Symbols" "TASK.sYmbol.LOAD track.address()"
|
|
menuitem "Delete Process Symbols" "TASK.sYmbol.DELete track.address()"
|
|
;menuitem "Add to Watched Processes"
|
|
;(
|
|
; &address=address.offset(track.address())
|
|
; TASK.Watch.View &address
|
|
;)
|
|
;menuitem "Delete from Watched Processes" "TASK.Watch.DELete track.address()"
|
|
;separator
|
|
menuitem "Scan MMU Pages"
|
|
(
|
|
&address=address.offset(track.address())
|
|
;MMU.TaskPageTable.SCAN &address
|
|
TASK.MMU.SCAN &address
|
|
)
|
|
separator
|
|
menuitem "Dump process entry"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Data.dump &address /l /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.l"
|
|
(
|
|
default
|
|
menuitem "Display detailed"
|
|
(
|
|
&address=address.offset(track.address())
|
|
TASK.Lwp &address
|
|
)
|
|
menuitem "Display lwp struct"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Var.View %m %s (struct lwp)*&address
|
|
)
|
|
separator
|
|
menuitem "Display Stack Frame"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Var.Frame /Locals /Caller /Task &address
|
|
)
|
|
menuitem "Display Registers"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Register /Task &address
|
|
)
|
|
menuitem "Switch Context" "Register.TASK address.offset(track.address())"
|
|
separator
|
|
menuitem "Dump lwp entry"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Data.dump &address /l /dialog
|
|
)
|
|
)
|
|
|
|
|
|
menu "task.lib"
|
|
(
|
|
default
|
|
;menuitem "Display detailed"
|
|
;(
|
|
; &address=address.offset(track.address())
|
|
; TASK.Process &address
|
|
;)
|
|
menuitem "Display Library struct"
|
|
(
|
|
&address=address.offset(track.address())
|
|
Var.View %m %s (struct link_map*)&address
|
|
)
|
|
separator
|
|
menuitem "Load Library Symbols" "TASK.sYmbol.LOADLib track.string() track.address()"
|
|
menuitem "Delete Library Symbols" "TASK.sYmbol.DELeteLib track.string() track.address()"
|
|
separator
|
|
menuitem "Dump Library entry"
|
|
(
|
|
&address=address.offset(track.address())
|
|
&spaceid=task.proc.spaceid(track.string())
|
|
Data.dump &spaceid:&address /l /dialog
|
|
)
|
|
)
|
|
|