Debug CMD
Debug CMD
Copyright © 1983-2016 by Green Hills Software. All rights reserved. No part of this publication may be reproduced, stored
in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or
otherwise, without prior written permission from Green Hills Software.
Green Hills, the Green Hills logo, CodeBalance, GMART, GSTART, INTEGRITY, MULTI, and Slingshot are registered
trademarks of Green Hills Software. AdaMULTI, Built with INTEGRITY, EventAnalyzer, G-Cover, GHnet, GHnetLite,
Green Hills Probe, Integrate, ISIM, u-velOSity, PathAnalyzer, Quick Start, ResourceAnalyzer, Safety Critical Products,
SuperTrace Probe, TimeMachine, TotalDeveloper, DoubleCheck, and velOSity are trademarks of Green Hills Software.
All other company, product, or service names mentioned in this book may be trademarks or service marks of their respective
owners.
For a listing of Green Hills Software's periodically updated patent marking information, please visit
http://www.ghs.com/copyright_patent.html.
PubID: debug_cmd_no_wmaade-558975
Branch: http://toolsvc/branches/release-branch-70
Date: May 6, 2016
Contents
Preface xv
About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
The MULTI 7 Document Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Conventions Used in the MULTI Document Set . . . . . . . . . . . . . . . . . . . xviii
dbnew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
endtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
launcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
loadsym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
mev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
mrv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
P ......................................................... 29
q ......................................................... 30
quit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
quitall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
starttime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
unloadsym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
editswbp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
hardbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
install_bp_on_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
rominithbp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
sb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
setbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
sethbp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
stopif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
stopifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
tog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Tog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
watchpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
setintegritydir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
setuvelositydir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
sourceroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
star . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
syncolor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Button, Menu, and Mouse Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
-> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
customizemenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
customizetoolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
debugbutton, editbutton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
inspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
keybind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
examine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
goaway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
l......................................................... 111
map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
mprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
mrulist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
mute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
p, print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
printline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
printphys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
printwindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Q........................................................ 117
savedebugpane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
windowcopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
windowpaste, windowspaste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
memtest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
memwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
runtohere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Halt Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
H........................................................ 166
halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
k ........................................................ 166
Run Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
r ........................................................ 167
R ........................................................ 168
rb, Rb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
rundir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
runtask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Signal Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
zignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Single-Stepping Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
bcU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
bprev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
bs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
bsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
cu, cU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
s ........................................................ 177
S, n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
si . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Si, ni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
sl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Sl, nl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
stepinto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Task Execution Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
taskaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
regload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
regtab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
regunload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
regvalload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
regvalsave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
regview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
!! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
backhistory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
forwardhistory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
h ........................................................ 211
Hook Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
addhook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
clearhooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
listhooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
MULTI-Python Script Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
python, py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
pywin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Object Structure Awareness (OSA) Commands . . . . . . . . . . . . . . . . . . . . 217
osacleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
osacmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
osaexplorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
_osaFillGuiWithObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
osainject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
osasetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
osatask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
osatasklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
osaview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
taskwindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Record and Playback Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
> ........................................................ 226
>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
< ........................................................ 227
isearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
isearchadd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
isearchreturn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
printsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
tracedata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
tracefunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
traceline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
traceload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
tracemevsys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
tracepath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
tracepro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
tracesave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
tracesavetext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
tracesubfunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
viewdel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
viewlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Cache View Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
cachefind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
cacheview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Data Visualization Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
dataview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
dvclear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
dvload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
dvprofile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Index 305
Contents
About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
The MULTI 7 Document Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Conventions Used in the MULTI Document Set . . . . . . . . . . . . . . . . . . . . . . . xviii
Preface
This preface discusses the purpose of this manual, the MULTI documentation set,
and typographical conventions used.
Note
New or updated information may have become available while this book
was in production. For additional material that was not available at press
time, or for revisions that may have become necessary since this book
was printed, please check your installation directory for release notes,
README files, and other supplementary documentation.
For a comprehensive list of the books provided with your MULTI installation, see
the Help → Manuals menu accessible from most MULTI windows.
• Print
• Online help, accessible from most MULTI windows via the Help → Manuals
menu
• PDF, available in the manuals subdirectory of your IDE or Compiler installation
• gxyz is a command.
• The option -option should either be replaced with one or more appropriate
options or be omitted.
• The word filename should be replaced with the actual filename of an
appropriate file.
The square brackets and the ellipsis should not appear in the actual command you
enter.
Contents
Availability of Debugger Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Getting Help Information about Debugger Commands . . . . . . . . . . . . . . . . . . . . 2
Finding Debugger Commands in This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Debugger Command Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Using Address Expressions in Debugger Commands . . . . . . . . . . . . . . . . . . . . . . 5
Identifying Breakpoints in Debugger Commands . . . . . . . . . . . . . . . . . . . . . . . . 10
Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Default Search Path for Files Specified in Commands . . . . . . . . . . . . . . . . . . . . 14
Chapter 1. Using Debugger Commands
This chapter describes the conventions used to document the Debugger commands
and explains some common concepts and procedures related to using Debugger
commands. The remainder of this manual describes all of the MULTI Debugger
commands. For a description of the command pane, the area of the main Debugger
window in which you enter Debugger commands, and shortcuts that can be used
in the command pane, see “The Command Pane” in Chapter 2, “The Main Debugger
Window” in the MULTI: Debugging book.
Some Debugger commands are not available in non-GUI mode. These commands
are labeled GUI only. If a command is not marked GUI only, it is available in both
GUI and non-GUI mode. For more information about GUI and non-GUI modes,
see “Starting the Debugger in GUI Mode” in Chapter 1, “Introduction” in the
MULTI: Debugging book and “Starting the Debugger in Non-GUI Mode
(Linux/Solaris only)” in Chapter 1, “Introduction” in the MULTI: Debugging book.
For a full explanation of other notational and usage conventions pertaining to the
Debugger commands, see “Debugger Command Conventions” on page 3.
• help command — Opens the Help Viewer on documentation for the specified
command.
• usage command — Prints the basic syntax of the specified command to the
command pane.
For more information about these and other help commands, see Chapter 9, “Help
and Information Command Reference” on page 119.
If you are looking for information about a specific command, consult the index for
the specific location of the relevant documentation. For an alphabetical list of all
Debugger commands, see the entry commands in the index.
For general information about using Debugger commands, and for an explanation
of the conventions used in the command syntax and descriptions, see “Debugger
Command Conventions” on page 3. For a description of the command pane, the
area of the main Debugger window in which you enter Debugger commands, and
shortcuts that can be used in the command pane, see “The Command Pane” in
Chapter 2, “The Main Debugger Window” in the MULTI: Debugging book.
%bp_label The b commands for setting breakpoints (for example, b, bi, bif, and
bx) accept %bp_label as an argument, where bp_label is the
user-specified name for the breakpoint. bp_label should not contain
spaces or special characters.
The following example sets a breakpoint labeled foo on line 24 of
function main:
> b %foo main#24
{commands} Curly braces indicate a command list, where commands can be either
a single command or a list of commands with the syntax:
command; command; ...
Some Debugger commands, such as certain breakpoint commands,
can be scripted. That is, they can accept command lists that specify
other commands to be performed at specific times. For more
information, see “Using Command Lists in Debugger Commands”
on page 12.
address_expression In the documentation describing the syntax for Debugger commands,
address_expression is a placeholder for an expression referring to a
specific location within your program. The Debugger accepts a variety
of address expressions. For examples of common address expression
formats, see “Using Address Expressions in Debugger Commands”
on page 5.
GUI only The label GUI only indicates that a command is not available in
non-GUI mode. For more information about GUI and non-GUI modes,
see “Starting the Debugger in GUI Mode” in Chapter 1, “Introduction”
in the MULTI: Debugging book and “Starting the Debugger in
Non-GUI Mode (Linux/Solaris only)” in Chapter 1, “Introduction”
in the MULTI: Debugging book.
Linux/Solaris only The label Linux/Solaris only indicates that the command is only
available on Linux/Solaris or while debugging Linux/Solaris-like
target systems.
stacklevel_ A number followed by an underscore refers to the specified level of
the call stack. For example, if the function main() calls foo(), which
calls bar(), which calls hum(), and in the Debugger you are currently
debugging hum(), the following command:
> e 2_
The following table provides example address expressions, which are specified here
in conjunction with the e command. The e command navigates to the location
indicated by the given address expression (see “e” on page 143).
Note
When the address_expression refers to a line number, the meaning
of the expression varies depending on whether the configuration option
procRelativeLines is on (function-relative mode) or off (file-relative
mode). For more information about specifying line numbers, see
“Specifying Line Numbers” on page 7.
Command Effect
e 10 Function-relative mode: Examines line number 10 in the
current function.
File-relative mode: Examines line number 10 in the
current file.
e +10 or -10 Examines ten lines after or before the current position,
respectively.
e 0x1234 Examines the line at address 0x1234.
e func2 Examines function func2.
e func2#4 Function-relative mode: Examines line 4 of function
func2.
File-relative mode: Examines line 4 of the file containing
func2, if that line exists within func2.
e "file3.c"#4 Examines line 4 of file file3.c.
e "file3.c"#func2 Examines function func2 in file file3.c.
e "file3.c"#func2#4 Function-relative mode: Examines line 4 of function
func2 in file file3.c.
File-relative mode: Examines line 4 of the file file3.c, if
that line exists within func2.
e (foo) Examines the address that is the value of the standard
expression foo.
e global_variable Examines the source location where global_variable
is defined.
Command Effect
e ($retadr( )) Examines the return address (exit point) of the current
function. For a function without source line debug
information, examines the address one byte past the end
of the function's last instruction.
e 1b Examines the location of the breakpoint with ID = 1.
e %bp_label Examines the location of the breakpoint labeled
bp_label.
e 2_ Examines stack level 2.
e "file3.c"#func2##label4 Examines C Label label4 in function func2 in file
file3.c.
e func2##label4 Examines C Label label4 in function func2.
e ##label4 Examines C Label label4 in the current function.
e * Examines the function list (wildcard search).
e $register_name Examines the address stored in the register
register_name.
e $system_variable Examines the address stored in the system variable
system_variable.
For information about the way MULTI resolves names in address expressions, see
“Name Resolution” on page 8.
The following examples demonstrate how the same command will examine different
lines, depending on whether the Debugger is configured for function-relative or
file-relative mode.
Name Resolution
When resolving names in address expressions, MULTI attempts to match the name
with a function, a global variable, or a program section. If attempting to match the
name with a function, MULTI generally searches fully qualified function names
first, then base names.
In C, the base name of a function and the fully qualified name are the same. In C++,
the fully qualified name consists of the function's name and argument type(s), while
the base name consists of the name only. Some examples follow.
int ex1(int arg1);
int ex2();
If you specified a file in the address expression, MULTI attempts, in the order
indicated below, to match the name with:
If you did not specify a file in the address expression, MULTI attempts, in the order
indicated below, to match the name with:
If MULTI finds more than one matching result, you may be asked to choose
one.
5. Any global variable (only if the name in the expression is not followed by #)
6. A section name on the target (only if the name in the expression is not followed
by #)
You can also specify a breakpoint label when you create a new breakpoint. Most
of the b commands for setting breakpoints (for example, b, bi, bif, and bx) accept
%bp_label as an argument to specify a name for a new breakpoint. bp_label
should not contain spaces or special characters.
The following example sets a breakpoint labeled foo on line 24 of function main:
> b %foo main#24
After a breakpoint has been created with a breakpoint label, other commands (such
as B, e, d, and tog) can use the breakpoint label to refer to that specific breakpoint.
For example:
> d %foo
removes the breakpoint labeled foo. For information about the B, d, and tog
commands, see “Breakpoint Commands” on page 41. For information about the e
command, see “Navigation Commands” on page 142.
To add a label after a breakpoint is created, use the Software Breakpoint Editor.
For more information, see “Creating and Editing Software Breakpoints” in Chapter
8, “Executing and Controlling Your Program from the Debugger” in the MULTI:
Debugging book.
Like breakpoint IDs, breakpoint labels can also be used to specify breakpoint ranges
and breakpoint lists, as described in the next section.
%bp_ID_or_bp_label_1:%bp_ID_or_bp_label_2
and refers to all of the breakpoints with breakpoint IDs between the IDs for the
breakpoints referred to by bp_ID_or_bp_label_1 and bp_ID_or_bp_label_2,
inclusive. For example, %3:%6 refers to the four breakpoints with breakpoint IDs
3, 4, 5, and 6. You can specify breakpoint labels in a breakpoint range. These will
be converted to the corresponding numerical ID in order to establish the range. The
breakpoint ID of the second breakpoint in the range must be greater than or equal
to the breakpoint ID of the first breakpoint in the range.
Some breakpoint commands, such as the B and d commands, can take breakpoint
lists as arguments. For example:
Command Effect
d %foo,%bar,%gamma Removes the breakpoints labeled foo, bar, and gamma.
d %foo:%gamma Removes the breakpoints with breakpoint IDs in the range
between the breakpoint ID of breakpoint labeled foo and the
breakpoint ID of the breakpoint labeled gamma. The breakpoint
ID of the second breakpoint in the range must be greater than or
equal to the ID of the first breakpoint in the range.
d %1,%4:%7 Removes the breakpoints with ID numbers 1, 4, 5, 6, and 7.
For more information about breakpoint IDs and breakpoint labels, see “Breakpoint
IDs and Labels” on page 10. For information about the B and d commands, see
“Breakpoint Commands” on page 41.
Command Syntax
A command list can span multiple lines. That is, after the initial curly brace ( { ),
which must be included on the first line, you can continue to enter commands on
separate lines until you end the list with a closing curly brace ( } ).
For example, a valid if command can be written to span multiple lines as follows:
if ($test == 0) {
mprintf("Invalid value\n");
} else {
mprintf("Valid value\n");
}
The following if command, which also spans multiple lines, uses invalid syntax
(the curly braces begin new lines):
if ($test == 0)
{
mprintf("Invalid value\n");
} else
{
mprintf("Valid value\n");
}
Curly braces may contain other pairs of curly braces, as long as they are all paired
and closed correctly. For example, the following command will set a scripted
breakpoint that checks the value of some global variables.
MULTI> b {
continued> mprintf("Fly = %d\n", fly);
followed by the decimal value of the variable fly. Then, if the value of the variable
bar is less than nine, the process will continue to run. Otherwise, the Debugger
will print:
Error: bar too high
These comments will be stripped out and ignored during command processing.
Note
C-style comments /* */ are allowed to span lines.
Terminating Commands
All MULTI Debugger commands are assumed to be terminated by a new line or
by a semicolon (;) unless the new line or semicolon occurs inside a command list
(denoted by {}) or the new line is preceded by a backslash (\). See “Using Command
Lists in Debugger Commands” on page 12.
MULTI uses the default search path when locating the following types of files:
• Source files
• Script files
• Object files
If a Debugger command uses the default search path, it will be indicated in its
description.
Contents
General Debugger Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Chapter 2. General Debugger Command Reference
The commands in this chapter allow you to perform common Debugger operations
such as attaching to and detaching from a program, debugging a new program,
blocking command processing, and closing the Debugger or the MULTI IDE. For
information about using the Debugger, see the MULTI: Debugging book.
• asm — Assembles the given assembly instruction into machine code and prints
this machine code (see “asm” on page 17).
• attach — Attaches to a process running on an RTOS (see “attach” on page 18).
• caches — Enables or disables the use of the memory cache and the assembly
cache (see “caches” on page 19).
• call — Prints the value of the given function or expression (see “call”
on page 20).
• dbnew — Allows you to debug a different program (see “dbnew” on page 20).
• debug — Replaces the current program with the given program (see “debug”
on page 20).
• detach — Detaches the Debugger from the program it is currently debugging
(see “detach” on page 21).
• endtime — Prints the elapsed time since the last starttime command (see
“endtime” on page 21).
• launcher — Starts the Launcher (see “launcher” on page 22).
• loadsym — Loads additional debug symbols from the given file and merges
them into the symbol table (see “loadsym” on page 22).
• mev — Requests the MULTI EventAnalyzer to perform the given operation
(see “mev” on page 23).
• monitor — Saves the command list commands to send to the Debugger every
time the process stops (see “monitor” on page 24).
• mrv — Launches or closes the MULTI ResourceAnalyzer (see “mrv”
on page 25).
• new — Adds the given program to the target list and loads it in the Debugger
window (see “new” on page 26).
• output — Redirects output normally sent to the Debugger into a file or to
standard output (see “output” on page 27).
• P — Sends commands to processes and/or lists information about processes
(see “P” on page 29).
• q — Prompts the user to quit MULTI (see “q” on page 30).
• quit — Closes the current Debugger window and exits MULTI if this is the
last window (see “quit” on page 30).
• quitall — Exits MULTI (see “quitall” on page 32).
• restore — Restores the state of the Debugger from the specified file (see
“restore” on page 32).
• save — Saves the state of the Debugger with respect to the currently selected
task and target connection, if any (see “save” on page 32).
• starttime — Saves the current time for use with the endtime command (see
“starttime” on page 33).
• unloadsym — Unloads from the symbol table all the debugging symbols for
the specified file (see “unloadsym” on page 33).
• wait — Blocks command processing (see “wait” on page 34).
asm
asm [-v] [-replace addr [ -force | -f ]] [-opt "options"] inst
Assembles the given assembly instruction inst into the machine code it represents
and prints this machine code. (If this feature is not supported for the current target,
an error message will be printed instead). This command takes the following
arguments:
fail if the instruction assembled has a different length than the instruction at
address addr; see -force to avoid this.
• -force | -f — Only valid when -replace is used. This forces the replacement
to proceed even if the instruction assembled has a different length than the
instruction at address addr.
• -opt "options" — Assembles inst with the indicated assembler options.
The quotation marks are required. See the documentation for your target's
assembler for more information about possible options.
Note
Not all instructions are supported on all processor types. To get the correct
assembly for some instructions, you may have to specify the processor
in use on your target when using this command. For example, you may
need to pass a -cpu option to the assembler:
attach
attach [-addressSpace name] process_id | process_name [ -halt | -nohalt ] [ -exec
executable | -noexec ]
GUI only
Attaches to a process running on an RTOS, adds a new target list entry for the
process, and loads the process in the Debugger window. Attaching to threads
advertised by hardware targets is a deprecated use of this command.
You can use this command for native Linux/Solaris debugging. Note that unless
you are logged in as root, you can only debug your own native processes.
The detach command detaches from a process (see “detach” on page 21).
caches
caches [ on | off ]
GUI only
Enables or disables the use of both the memory cache (_CACHE) and the assembly
cache (_ASMCACHE). For example, caches on is equivalent to _CACHE = 1;
_ASMCACHE = 1. For more information about _CACHE and _ASMCACHE, see “System
Variables” in Chapter 14, “Using Expressions, Variables, and Function Calls” in
the MULTI: Debugging book.
call
call func | expr
Prints the value of the function func or the expression expr. This command allows
you to call:
This command does not use MULTI commands when resolving the name of the
given function or expression.
dbnew
dbnew [ c | n ]
GUI only
Allows you to debug a different program. The dbnew command prompts you to
select a new executable to debug. The selected executable is added to the target list
and loaded into the Debugger window, replacing the previous program. If c is
specified, the previous program is removed from the target list. If n is specified,
the previous program is not removed from the target list and its status is unaffected.
If you run this command without arguments, it has the same effect as dbnew n.
See also “debug” on page 20.
debug
debug [program_name] [core_file]
The named files will be located using the default search path. See “Default Search
Path for Files Specified in Commands” on page 14.
Corresponds to:
detach
detach [-run|-norun] [pr=num]
In run mode, detaches the Debugger from the current process and selects the next
program in the target list. In a native environment, the entry for the current process
is removed from the target list, but the debug server remains connected. All
breakpoints are removed before detaching. See also “attach” on page 18.
• -run and -norun — Specify whether or not to resume the process on the
target when the process is detached. If you do not specify one of these options,
the behavior depends on the debug server, which usually resumes the process.
(Note that the detach command may halt a currently running process before
resuming it. This behavior depends on the debug server.)
• pr=num — Specifies that the process you want to detach from is placed in the
Debugger's internal process slot number num. If no process slot is specified,
the process on which the command is executed is detached.
endtime
endtime [-usec]
Prints the elapsed time since the last starttime command (see “starttime”
on page 33). This allows you to measure the approximate amount of time between
two events on the target. For example, when the target is halted, you might issue
the following commands to save the current time, run the target, and then print the
elapsed time when the target halts again:
starttime; cb; endtime
By default, endtime selects an appropriate time unit and then prints a decimal time
such as 291.477808 sec, 101.601 msec, or 485 usec. If you pass the optional
-usec argument, the elapsed number of microseconds are printed with no unit
string. The previous examples would print as 291477808, 101601, and 485. This
output is easier for a script to parse.
Note
The endtime command may overstate the time between two target events
by up to a couple hundred milliseconds, depending on your target
connection. Additionally, endtime may give slightly different values
when measuring the same operation more than once, even if the actual
time taken was the same. As a result, starttime and endtime are best
used for rough measurements of at least a few hundred milliseconds.
launcher
launcher
loadsym
loadsym filename [-text text_offset] [-data data_offset] [-section "section_name"
section_offset]...
Loads additional debug symbols from the file specified by filename and merges
them into the symbol table. filename is searched for using the default search path
(see “Default Search Path for Files Specified in Commands” on page 14). If the
optional text and data offset values are supplied, the text and data addresses are
offset by the given values. If the -section option is specified, addresses in the
named section are offset by the given value. The -section option may be given
multiple times to provide address offsets for different sections.
You can use this command in target environments where new code, typically
position-independent code, is loaded to the target at run time. For example:
> loadsym a.out -text 0x20000
This command loads symbol information into the Debugger, but does not affect the
target. You can load additional symbol information for a module during a debugging
session.
Warning
Do not use this command to specify the primary executable that you want
to debug. Instead, use the debug command followed by the
prepare_target command (see “debug” on page 20 and “prepare_target”
on page 247). For example, if you connect to a target on which your
program is already loaded, first select Direct hardware access for the
core that is running the program, and then issue the following commands:
> debug my_program
> prepare_target -verify=none
mev
mev -close [data_file]
monitor
monitor [ 0 | {commands} | num [{commands}] ]
GUI only
Saves the command list commands to send to the Debugger every time the process
stops. An unlimited number of monitors can be active at any time.
• monitor num — Deletes monitor number num. This does not renumber the
current monitors. Thus, if you have four monitors and delete number 3, the
remaining three will be numbered 1, 2, 4, creating an “empty slot” where 3
was formerly located.
• monitor {commands} — Inserts a monitor with the given command list in the
first available empty slot.
• monitor num {commands} — Puts a monitor with the given command list in
the num slot. It replaces any existing monitor in that position.
• monitor 0 — (The number zero.) Deletes all monitors.
See also “window” on page 296. For information about command lists, see “Using
Command Lists in Debugger Commands” on page 12.
mrv
mrv [-title string] [-log log_filename] [-timeout seconds] [-port port_num] target
GUI only
Launches or closes the MULTI ResourceAnalyzer. The first format of the command
launches the ResourceAnalyzer and the second format closes it.
• -title string — Specifies the string that appears in the title bar of the
MULTI ResourceAnalyzer.
• -log log_filename — Specifies that messages from the target should be
logged to log_filename.
• -timeout seconds — Specifies the timeout period (in seconds) for
connecting to the target. If not specified, the host's default value is used.
• -port port_num — Specifies the port to connect to on target. If you do
not specify a port, MULTI uses the default port used by the INTEGRITY target.
• target — Specifies the target you want to connect to.
• -close [[-port port_num] target] — Disconnects the MULTI
ResourceAnalyzer from port_num on target. If you do not specify a port,
MULTI disconnects from the default port used by the INTEGRITY target. If
you do not specify target, the connection for the current ResourceAnalyzer
is closed.
new
new [[-alias component_alias]... [-bind component_alias]... program_name [pr=num]
[core_file]]
GUI only
Adds the program program_name to the target list and loads the program in the
Debugger window.
If no arguments are specified, MULTI adds another instance of the current program
to the target list and loads the program in the Debugger window.
output
output [-show] -server|-io|-multi [-prefix prefix_string|-noprefix] [-append]
[-copytopane yes|no] [-silent] [filename|-normal]
Redirects output normally sent to the Debugger into a file or to standard output.
You may optionally copy the redirected output to the Debugger.
Note
Because I/O is handled by the underlying operating system in a native
environment, you cannot use the output command to redirect output
from a native process. On Linux/Solaris, the output is displayed in
the terminal from which the Debugger was launched.
• -multi — Sets the destination for output normally sent to the command pane
of the Debugger window (see “The Command Pane” in Chapter 2, “The Main
Debugger Window” in the MULTI: Debugging book).
• -prefix — Specifies the prefix string that is printed before the output.
• -noprefix — Indicates that no prefix is printed before the output.
If neither a filename nor the -normal option is specified, the output source is
redirected to standard output.
Note
On Windows, MULTI Debugger output that is redirected to stdout via
the output command is not usually visible unless you redirect stdout.
For example, when launching the Debugger from the command line, you
could redirect the Debugger's stdout to a file named myout.txt:
P
P [[pr=num] subcommands]
Sends subcommands to a process and then lists information about the process, or,
if issued with no arguments, lists information (including process slot numbers)
about all processes.
This command is used exclusively for multiprocess debugging, and most of the
subcommands are used exclusively for native debugging.
If specified, the commands subcommands are sent to the process num, where num
is MULTI's internal slot number for the process. For example, the command P
pr=1 b toggles the state of the b flag in the process with slot number 1. If no
process slot number is specified, the process currently being debugged is used. In
either case, this command lists information about the process after sending
subcommands to it.
• b — Toggles the flag causing breakpoint inheritance after forking. If the flag
is set, children of the current process inherit all breakpoints set at the time of
the fork.
• c — Toggles the flag causing children to be debugged. If the flag is set, children
of the current process are added to the list of processes under control of MULTI.
• e — Toggles the flag causing children to stop upon execution of the exec()
system call. If the flag is set, this acts as if a breakpoint were encountered at
the first instruction of routine main() in the exec'd program.
• f — Toggles the flag causing children to stop upon execution of the fork()
system call. If the flag is set, this acts as if a breakpoint were encountered
immediately following the fork.
• i — Toggles the flag that makes the child process inherit its settings from the
parent. This will only have an effect if the c flag is also set.
• d — Toggles the flag causing MULTI to debug a newly created task on target.
• t — Toggles the flag causing the target to stop a newly created task.
q
q
Non-GUI only
Prompts the user to quit MULTI. This command works only in non-GUI mode.
When prompted, your choices are as follows.
quit
quit [all] [this] [ ask | confirm | auto | force ] [ window | entry ]
Closes the current Debugger window or removes the current target list entry. If this
is the last entry, the Debugger exits. If you do not specify any arguments and a
process has started, MULTI prompts you to kill the process or, if the target allows,
detaches the Debugger from the process and lets it run. If you do not specify any
arguments and no process has started, the Debugger closes without prompting you.
You can specify one of the following arguments to modify the behavior of this
command:
• all — Is equivalent to the quitall command except that MULTI prompts you
before killing an active process or, if the target allows, detaches the Debugger
from the process and lets the process run (see “quitall” on page 32).
• this — Closes the current target list entry. MULTI prompts you first.
• ask — Uses the promptQuitDebugger configuration option to determine
whether or not to prompt you before quitting the Debugger. The default setting
is to prompt only if a process has started. See “The More Debugger Options
Dialog” in Chapter 8, “Configuration Options” in the MULTI: Managing
Projects and Configuring the IDE book.
• confirm — Always prompts you before quitting the Debugger.
• auto — Quits the current Debugger window. If a process has started, MULTI
prompts you to kill the process or, if the target allows, detaches the Debugger
from the process and lets it run. If no process has started, MULTI closes the
Debugger without prompting you.
• force — Closes the current Debugger window and kills the current process
without prompting.
• window — Closes the current Debugger window, but does not detach from or
terminate any process unless the current Debugger window is the only one
remaining. If the current Debugger window is the only one remaining, MULTI
detaches from run-mode processes and terminates non-run-mode processes
when it closes the window. This option corresponds to and File → Close
Debugger Window.
• entry — Removes the currently selected entry from the target list. In run
mode, MULTI detaches from the process. If you are not debugging in run
mode, MULTI terminates the process. If the entry is the only remaining entry
in the target list, all Debugger windows close and the Debugger exits. This
option corresponds to File → Close Entry.
quitall
quitall
Causes MULTI to exit. This closes all of MULTI's windows. If you have edits that
have not been saved, you will be given the chance to save them before exiting. The
Debugger does not prompt you before killing active processes.
restore
restore [filename]
GUI only
Restores the state of the Debugger from filename and, if it exists, from filename.bps.
If you do not specify filename, this command restores the state of the Debugger
from multistate and, if it exists, from multistate.bps. These files must have been
created with the save command (see “save” on page 32) or with Config → State
→ Save State. If you were connected to a debug server when you saved, the restore
command also attempts to reconnect you to that debug server.
MULTI searches for files using the default search path. See “Default Search Path
for Files Specified in Commands” on page 14.
Note
This command may not be able to restore group breakpoints.
save
save [filename]
Saves the state of the Debugger with respect to the currently selected task and target
connection, if any. This writes out source directories as set by the source command
(see “source” on page 86), and the current target connection, if any, to the file
filename or to the file multistate if no filename is specified on the command line.
starttime
starttime
Saves the current time. When used in conjunction with the endtime command, this
allows you to measure the approximate amount of time that has elapsed between
two events on the target. For more information, see “endtime” on page 21.
unloadsym
unloadsym filename
Unloads from the symbol table all of the debugging symbols for the file filename.
You can use this command with the loadsym command to load debugging
information for a stripped executable at run time (see “loadsym” on page 22).
For example:
> debug a.out.stripped
> loadsym a.out.debug
> unloadsym a.out.stripped
The filename will be searched for using the default search path. See “Default Search
Path for Files Specified in Commands” on page 14.
wait
wait [-global] [-time milliseconds [-timeoutcmd {commands}]] [-search] [-pause]
[-stop] [[-not] -multiStatus status_name_or_value] [-py [-all | -cmd | -pane]] [[-show
| -goaway] [ -taskStack | -taskStatus status ] [-addressSpace addressSpace_name]
-taskName task_name | -taskid task_id ] [-load] [-unload] [-runmode_partner]
• -global — Blocks command processing for all MULTI processes in the same
MULTI session. If you do not specify -global, only the current process is
blocked. This argument may be used in conjunction with any other argument.
• -time milliseconds — Blocks command processing for milliseconds.
If used in conjunction with another argument, milliseconds represents the
maximum period of time that command processing is blocked, whether or not
the action specified by the second argument has occurred.
• -pause — Blocks command processing until the system is paused. The status
shown in the Debugger target list for the currently selected task may be Paused
by halted_task/core or Stopped. This option is only applicable when
synchronous debugging is enabled. For information about synchronous
debugging, see “Synchronous Debugging on a Multi-Core Target” in
Chapter 25, “Freeze-Mode Debugging and OS-Awareness” in MULTI:
Debugging.
• -stop — Blocks command processing until the current process halts. This is
the default behavior if you do not specify any argument to the wait command.
It is also a special case of the -multiStatus syntax, described next.
• [-not] -multiStatus status_name_or_value — Blocks command
processing until the MULTI process enters the specified status or, if -not is
specified, until the process exits the specified status. Status name/value
possibilities follow.
Status Name Status Value
Nil 1
Stopped 2
Running 3
Dying 4
Fork 5
Exec 6
Continue 7
Zombie 8
targetFrozen N/A
The status name targetFrozen indicates the target's system halted status.
The other names are normal statuses for MULTI processes, and the numeric
values are MULTI-internal values. For information about accessing the current
process status, see the _STATE variable in “System Variables” in Chapter 14,
“Using Expressions, Variables, and Function Calls” in the MULTI: Debugging
book.
For more information about the Task Manager window, see “Run-Mode Debugging”
in the MULTI: Debugging book.
The wait command can be useful when scripting test cases or in a situation like the
following. Suppose you are debugging in run-mode and want to attach to a task
named My Task when it appears in the Task Manager window. You can enter:
Breakpoint Command
Reference
Contents
Breakpoint Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Chapter 3. Breakpoint Command Reference
The Debugger provides a variety of commands for setting and removing breakpoints.
Many of the breakpoint commands have a similar syntax, since all breakpoints have
similar attributes.
Some of the breakpoint commands allow you to specify whether the breakpoint is
an any-task breakpoint or a task-specific breakpoint. An any-task breakpoint can
be hit by any task in the AddressSpace that the breakpoint is set in, while a
task-specific breakpoint can only be hit by the task it is set on. The /at (any-task)
and /tt (task-specific) options are only meaningful if you are using INTEGRITY
or another operating system that supports them.
A breakpoint can have a breakpoint count, which causes the breakpoint to be skipped
a specified number of times before it stops the process. The breakpoint count is
decremented by 1 each time the breakpoint is skipped. When the breakpoint count
reaches 1, the breakpoint stops the process (and continues to stop the process every
subsequent time it is reached). To set a breakpoint count, add the argument
@bp_count before the command list. For example, the following command sets a
breakpoint with a count of 4:
> b @4
In this example, the breakpoint will be hit the fourth time the line of code is executed,
and will continue to be hit every subsequent time that line is executed.
All breakpoint commands that contain the argument {commands} can take a list of
commands. The commands in the list are executed when the scripted breakpoint is
hit. For more information, see “Using Command Lists in Debugger Commands”
on page 12.
In all of the two letter breakpoint commands, if the second character is uppercase
(for example bU), the breakpoint is temporary.
For information about setting breakpoints using the GUI, see “Using Breakpoints
and Tracepoints” in Chapter 8, “Executing and Controlling Your Program from the
Debugger” in the MULTI: Debugging book.
Breakpoint Commands
The following list provides a brief description of each breakpoint command. For a
command's arguments and for more information, see the page referenced.
• editswbp — Opens a dialog box that you can use to edit the software breakpoint
at the current source line (see “editswbp” on page 54).
• hardbrk — Lists, deletes, or sets hardware breakpoints (see “hardbrk”
on page 55).
• install_bp_on_request — Controls when the Debugger installs breakpoints
on the target (see “install_bp_on_request” on page 60).
• rominithbp — Sets or removes the post-initialization hardware breakpoint
used in ROM and ROM-to-RAM copy debugging (see “rominithbp”
on page 61).
• sb — Sets target-specific breakpoints (see “sb” on page 62).
• setbrk — Sets a new breakpoint or removes an existing breakpoint at the
current line or at the current address (see “setbrk” on page 63).
• sethbp — Sets a hardware execute breakpoint at the current location in your
program code (see “sethbp” on page 64).
• stopif — Sets a conditional breakpoint at the line number specified (see “stopif”
on page 64).
• stopifi — Sets a conditional breakpoint on the machine instruction at the
specified address (see “stopifi” on page 65).
• tog — Toggles the active status of the given address expression or breakpoints
(see “tog” on page 66).
• Tog — Toggles the active status of all breakpoints (see “Tog” on page 67).
• watchpoint — Sets a watchpoint on the address indicated, which causes the
process to halt when the address is written to (see “watchpoint” on page 67).
b
b [%bp_label] [@bp_count] [&] [/s] [/off] [ /at | /tt | /type_gt [@task_group] [/trigger
@task_group] ] [address_expression] [{commands}]
The options you specify determine what breakpoint marker is displayed on the left
side of the source pane. See “Breakdots, Breakpoint Markers, and Tracepoint
Markers” in Chapter 8, “Executing and Controlling Your Program from the
Debugger” in the MULTI: Debugging book.
If a function name is specified (for example with the command b Fly), the
breakpoint is not set at the first machine instruction of the function, but rather at
the first machine instruction after the function's stack setup code, if any exists. This
ensures that the arguments and local variables of a function are read correctly when
you stop in that function. (See “The Call Stack Window and Function Prologues
and Epilogues” in Chapter 18, “Using Other View Windows” in the MULTI:
Debugging book.) For information about stopping at the first machine instruction
of a function, see “bi, bI” on page 45.
B
B [ address_expression | breakpoint_list ]
Lists information about breakpoints. The information is listed in the following order:
Example:
> b main#5
> b %my_bp_name main#6 { print "Here I am"; }
> b main#7 { print "main#7" }
> tog main#5
> B
0 main#5: 0x10204 count: 1 (inactive)
1 my_bp_name main#6: 0x01220 count: 1 <{ print "Here I am"; }>
2 main#7: 0x1022c count: 1 <{ print "main#7" }>
> B %my_bp_name:%2
1 my_bp_name main#6: 0x10220 count: 1 <{ print "Here I am"; }>
2 main#7: 0x1022c count: 1 <{ print "main#7" }>
Note
Entering the l b (lowercase L lowercase B) command is the same as
entering B in the command pane (see “l” on page 111).
Note
You can list information about deleted breakpoints by using the dz -list
command (see “dz” on page 52).
bA
bA [%bp_label] [@bp_count] [&] [/s] [ /at | /tt ] [address_expression] [{commands}]
Sets a temporary breakpoint using many of the same options as the b command
(see “b” on page 42). A temporary breakpoint is automatically removed when it is
hit.
bi, bI
bi [%bp_label] [@bp_count] [ /at | /tt ] [address_expression] [{commands}]
bif
bif [%bp_label] [@bp_count] [ /at | /tt ] address_expression condition
Sets a conditional breakpoint that will stop the process if condition evaluates to
true.
For example:
> bif funcname {i != 0}
Stop if i != 0 set at 0x20e6b8.
will stop the process when the function funcname is entered, if the variable i is
nonzero.
bpload
bpload filename
Loads breakpoints from filename, where filename is a file created with bpsave
(see “bpsave” on page 47).
You can also use the Load button in the Breakpoints window to achieve the same
results.
Note
This command and button may not be able to correctly load group
breakpoints.
bpsave
bpsave filename [breakpoint_list]
For example, after a debugging session, you can issue the following command:
> bpsave brkpts.lst
This saves the breakpoints to the file brkpts.lst. (You can also use the Save button
in the Breakpoints window to achieve the same results.)
Later, when you restart the Debugger, you can issue the following command:
> bpload brkpts.lst
bpview, breakpoints
bpview
breakpoints
GUI only
Opens the Breakpoints window, which you can use to add, change, or delete
software breakpoints, hardware breakpoints, and tracepoints. See “Viewing
Breakpoint and Tracepoint Information” in Chapter 8, “Executing and Controlling
Your Program from the Debugger” in the MULTI: Debugging book.
Corresponds to:
bt
bt [@bp_count] [ /at | /tt ] func_name
Displays a message every time the specified function is entered or exits, where:
The displayed message states whether the function is entered or exited. The message
printed on exit also provides the return value of the specified function.
Note
This command may produce unexpected behavior if your compiler
optimization settings result in func_name having multiple exit points or
if the exit point cannot be found.
bu, bU
bu [@bp_count] [stacklevel] [{commands}]
The breakpoint is set immediately after the return to the level specified by
stacklevel. The stacklevel is specified with a numeric value without an
underscore (for example, 5; see Chapter 5, “Call Stack Command Reference”
on page 73). If stacklevel is not specified, the breakpoint is set one level up
from the current function. For example, a way to recover after accidentally
single-stepping into a function is:
> bU; c
The bu and bU commands rely on the Debugger's ability to generate a partial stack
trace. They may not work correctly (for example, they may set a breakpoint at the
wrong address) if the stack trace obtained by the Debugger is incorrect. For
restrictions on tracing the call stack, see “Viewing Call Stacks” in Chapter 18,
“Using Other View Windows” in the MULTI: Debugging book.
bx, bX
bx [%bp_label] [@bp_count] [ /at | /tt ] [address_expression] [{commands}]
Sets a breakpoint at the exit point of a function. The breakpoint is permanent if you
use bx and temporary if you use bX.
If no arguments are specified, this command sets a breakpoint at the exit point of
the current function. The exit point is where all returns from this function will go
through.
> bx "foo.c"#a_routine
The first command sets a breakpoint at the exit point of function foo. The second
command sets a breakpoint at the exit point of the function a_routine, which is
located in file foo.c.
Note
This command may produce unexpected behavior if your compiler
optimization settings result in the function having multiple exit points or
if the exit point cannot be found.
d
d [ [/force] address_expression | breakpoint_list | %bp_label ]
If no arguments are given, all software breakpoints at the current line are removed.
This command removes software breakpoints and all of their associated attributes.
If you want to temporarily disable a breakpoint without deleting it, use the tog
command (see “tog” on page 66).
D
D [ /at | /tt ]
• If the OSA master process is selected in the target list — Deletes all normal
software breakpoints (except group breakpoints) in the master process. For
more information, see “Working with Freeze-Mode Breakpoints” in
“Freeze-Mode Debugging and OS-Awareness” in the MULTI: Debugging
book.
• If a run-mode AddressSpace is selected in the target list and you are using
INTEGRITY version 10 or later — Deletes all any-task breakpoints in the
AddressSpace.
• If a task is selected in the target list and you specify /at (the default) — Deletes
all task-specific and any-task software breakpoints in the task.
• If a task is selected in the target list and you specify /tt — Deletes all
task-specific software breakpoints, but not any-task software breakpoints, in
the task.
The /at and /tt options are only meaningful when a task is selected in the target
list.
dz
dz [ soft | hard | sobp ] [bp_ID_list]
The first format of the dz command restores breakpoints deleted in the last breakpoint
deletion operation or, if bp_ID_list is specified, the breakpoints whose IDs are
listed.
The second format of the dz command opens the Breakpoints Restore window,
which allows you to view and restore deleted breakpoints.
The third format of this command restores breakpoints deleted from the current
line's last breakpoint deletion operation, or, if list is specified, it lists the
breakpoints that were last deleted from the current line.
The fourth format prints a list of breakpoints that have been deleted and that can
be restored.
• -gui — Opens the Breakpoints Restore window, from which you can view
and restore deleted breakpoints. If specified in conjunction with soft, hard,
or sobp, the window opens on the Software tab (the default), the Hardware
tab, or the Shared Object tab, respectively. For information about the
Breakpoints Restore window, see “The Breakpoints Restore Window” in
Chapter 8, “Executing and Controlling Your Program from the Debugger” in
the MULTI: Debugging book.
• -line — Restores the software or hardware breakpoint(s) last deleted from
the line where the current line pointer ( ) is located, or, if specified in
conjunction with list, lists the software or hardware breakpoint(s) last deleted
from the line where the current line pointer is located but does not restore them.
• -list and list — Prints a list of breakpoints that have been deleted and that
can be restored. If specified in conjunction with the all option, all restorable,
deleted breakpoints are printed to the command pane. Otherwise, only those
removed in the last deletion operation are printed to the command pane.
• -clear — Permanently removes all applicable breakpoints. For example, if
specified in conjunction with the soft option, all previously deleted software
breakpoints (not only those deleted in the last deletion operation) are
permanently deleted and can no longer be restored. This option is useful if you
want to remove one or more breakpoints from the list of deleted breakpoints
(see the -list and list options).
edithwbp
edithwbp
GUI only
Opens a dialog box that you can use to edit the hardware breakpoint at the current
source line. If no hardware breakpoint is set at the current line (as indicated by the
blue context arrow), you can use the dialog box to create a new hardware breakpoint.
If hardware breakpoints are not supported on the currently connected target, you
will not be able to set the breakpoint. See “Creating and Editing Hardware
Breakpoints” in Chapter 8, “Executing and Controlling Your Program from the
Debugger” in the MULTI: Debugging book.
editswbp
editswbp
GUI only
Opens a dialog box that you can use to edit the software breakpoint at the current
source line. If no software breakpoint is set at the current line (as indicated by the
blue context arrow), you can use the dialog box to create a new software breakpoint.
See “Creating and Editing Software Breakpoints” in Chapter 8, “Executing and
Controlling Your Program from the Debugger” in the MULTI: Debugging book.
hardbrk
hardbrk [at]
The first format of the hardbrk command lists all currently set hardware breakpoints,
or, if at is specified, it lists all any-task hardware breakpoints or any-core hardware
breakpoints, depending on your environment. Each breakpoint listed is allocated
an identifying number.
The second format of the hardbrk command deletes one or more hardware
breakpoints.
The third format of the hardbrk command sets a hardware breakpoint. If no slots
remain on the target for a new hardware breakpoint, MULTI first disables an existing
hardware breakpoint that was set with the rolling attribute (if any), and then it sets
the hardware breakpoint. If no rolling hardware breakpoints are set on the target
and no slots are available, a hardware breakpoint is not set.
All formats of this command require that you pass the options in the order they are
presented above.
Note
Hardware breakpoints are implemented through direct hardware support.
Only a limited number of hardware breakpoints (usually fewer than four)
may be set on targets that support them.
Note
Even targets and debugging environments that allow you to set hardware
breakpoints may not support all the breakpoint capabilities described
here; neither do all targets support the precise semantics described. For
caveats and limitations related to using hardware breakpoints in specific
debugging environments, such as in TimeMachine or with INTEGRITY,
see “Hardware Breakpoints in Specific Environments” in Appendix H,
“Advanced Breakpoint Topics” in MULTI: Debugging. For information
about how your target handles hardware breakpoints if you are using a
Green Hills Probe or SuperTrace Probe, see the documentation about
target-specific hardware breakpoint support in the Green Hills Debug
Probes User's Guide.
If this option is the only one specified (that is, hardbrk at), it lists all any-task
or any-core hardware breakpoints.
If you do not specify expr, num, or * with the delete= option, the current
line is used.
The default attribute for an address in a text section is execute. The defaults
for data and other sections are read and write. Often the break only occurs
after the read or write.
address is equal to the bitwise AND of the data mask and the data value
specified with data=data_value. For more information about the applicability
of this option, see the description of the Value Mask field in “Software and
Hardware Breakpoint Editors” in Chapter 8, “Executing and Controlling Your
Program from the Debugger” in MULTI: Debugging.
• vm — Instructs INTEGRITY to use a virtual memory breakpoint to simulate
the hardware breakpoint. Because virtual memory breakpoints do not use any
target-specific hardware breakpoint resources (INTEGRITY implements the
mechanism instead), they are useful when the target lacks such resources.
However, depending on access patterns, virtual memory breakpoints may
significantly impact performance. The vm option is only supported if you are
using a run-mode connection to debug INTEGRITY version 10 or 11 tasks in
virtual AddressSpaces.
• -- — Indicates the end of the options applied to the hardware breakpoint, and
signals that the following item is the address expression where the hardware
breakpoint should be located. For example:
hardbrk write -- data
sets a hardware breakpoint on writes on the variable named data. This option
is useful if the expression shares the name of a hardbrk option.
• expr[:size] — Specifies the location of the breakpoint and can be a memory
address, variable, or pointer name. Specifying a size forces the breakpoint to
cover an explicit number of bytes. Sizes available vary by target and may be
limited to 1, 2, and 4 bytes or to power-of-2 bytes. A size of 1, 2, 4, or 8 bytes
may also limit the memory accesses that hit the hardware breakpoint to accesses
of the same length (for example, size 2 stops on a write of a short, but not a
char or int). The default size is one byte for memory locations, and the size
of the object for variables.
• {commands} — Executes the list of commands each time the hardware
breakpoint is hit. For information about setting such lists of commands, see
“Using Command Lists in Debugger Commands” on page 12.
If the target system cannot support the requested breakpoint, an error message
appears.
To print accessed variable val in the command pane any time the variable
val is accessed, and then resume the process:
Note
MULTI removes all hardware breakpoints when detaching from a process.
install_bp_on_request
install_bp_on_request -enable | -install
Controls when the Debugger installs breakpoints on the target. This command is
intended for use in setup scripts in freeze-mode debugging, in situations where you
have to run code on the target when it is not safe to install breakpoints on the target.
• You are loading a program (such as an OS kernel) to your target which uses
kernel virtual addresses that are different from physical addresses, and
• You have to run code at boot time on your target with the MMU disabled (such
as a ROM monitor).
In such a scenario, in your setup script, you would first (before any code executes
on your target) issue:
install_bp_on_request -enable
Note
Most programs and targets do not require this command. We recommend
that you contact Green Hills Support for help when you create your setup
script.
Note
Restarting your program over a freeze-mode connection clears the
-enable flag.
Note
While the contents of a monolith application may be shown in the target
list under a freeze-mode connection before the kernel is booted and a
rominithbp
rominithbp -setup [location] | -finish | -remove
sb
sb task action [%bp_label] [@bp_count] [&] [/off] [address_expression]
[{commands}]
• task — Specifies which task(s) in the system the breakpoint is set on. The
task argument is required and must be replaced by exactly one of the following
letters:
○ a — Any task in the current address space.
○ d — Any attached task in the current address space.
○ t — The current task.
○ u — Any unattached task in the current address space.
Note
The task and action arguments should not be separated by a space.
> sb tt foo#12
Sets a breakpoint at line 12 of the function foo. The breakpoint is triggered by the
current task and stops the current task (this is equivalent to a standard breakpoint).
> sb at bar#12
Sets a breakpoint at line 12 of the function bar. The breakpoint is triggered by any
task in the address space and stops the task that hit it.
setbrk
setbrk
GUI only
Sets a new breakpoint or removes an existing breakpoint at the current line (pointed
to by the current line pointer) or at the current address. The current address exists
only in GUI mode and specifies the line where the mouse was last clicked in an
interlaced text/assembly view.
This command is very useful when bound to a mouse button (see “Customizing
Keys and Mouse Behavior” in Chapter 7, “Configuring and Customizing MULTI”
in the MULTI: Managing Projects and Configuring the IDE book).
As an alternative to using this command, you can click the breakdot to the left of
the line to set or remove a breakpoint.
The setbrk command is different from the tog command, which you can use to
toggle the status of an existing breakpoint (see “tog” on page 66).
sethbp
sethbp [ enabled | disabled ] [rolling] [{commands}]
Sets a hardware execute breakpoint at the current location in your program code.
The hardware breakpoint will have the size of the instruction it is set on, an address
at the current code location, and an access type of execute. Hardware breakpoints
are implemented through direct hardware support and are only available on some
targets. MULTI removes all hardware breakpoints when detaching from a process.
If no slots remain on the target for this hardware breakpoint, MULTI will first
disable one of the existing hardware breakpoints that was set with the rolling
attribute and then set the hardware breakpoint. If no rolling hardware breakpoints
are set on the target and no slots are available, this hardware breakpoint will not be
set.
stopif
stopif [ /at | /tt ] [file_relative_line_number] condition
If you specify /at, the breakpoint is an any-task breakpoint. This is the default on
targets that support any-task breakpoints. If you specify /tt, the breakpoint is task
specific. This is the default on targets that do not support any-task breakpoints.
The condition must be an expression in the current language. When the process
reaches the breakpoint, it will halt if condition evaluates to true; otherwise it will
continue. For example, the following command stops the Debugger at line 20, if y
is equal to five:
> stopif 20 y==5
If you omit the line number, avoid expressions that begin with a number; otherwise
the expression will be parsed incorrectly. For example, you should not do the
following:
> stopif 5==y /*INCORRECT*/
In this example, the Debugger will try to set a breakpoint on line 5 with the condition
(==y), which will fail. To properly set this breakpoint, enclose the expression in
parentheses, as follows.
> stopif (5==y) /*CORRECT*/
MULTI will do limited syntax checking to make sure that the condition is a valid
expression.
stopifi
stopifi [ /at | /tt ] [address] condition
If you specify /at, the breakpoint is an any-task breakpoint. This is the default on
targets that support any-task breakpoints. If you specify /tt, the breakpoint is task
specific. This is the default on targets that do not support any-task breakpoints.
If address is not specified, the current machine instruction is used. The current
machine instruction is set when the target halts at a new location or when you display
a location using the /i or /I expression format. (For information about expression
If issued with an address, this command is identical to the stopif command, except
that the breakpoint is placed on the instruction at the specified address rather than
on the specified line (see “stopif” on page 64).
tog
tog [q] [ on | off | tog ] hbp [ [at] address_expression | hbp_id | * ]
Only existing breakpoints can be modified with this command. If there are none,
an error message is displayed.
Tog
Tog [q] [ on | off | tog ]
Toggles the status of all software breakpoints. If no arguments are specified, tog
is assumed.
watchpoint
watchpoint expr
watchpoint -delete
The first format of the watchpoint command sets a watchpoint on the address
indicated by expr, causing the process to halt when the address is written to.
The second format of the watchpoint command disables the software watchpoint.
The -delete option only applies to the software watchpoint; it does not disable
hardware watchpoints.
Building Command
Reference
Contents
Building Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Chapter 4. Building Command Reference
The commands in this chapter allow you to build a program, launch the MULTI
Project Manager, or launch the Utility Program Launcher. For more information,
see the MULTI: Managing Projects and Configuring the IDE book.
Building Commands
The following list provides a brief description of each building command. For a
command's arguments and for more information, see the page referenced.
• build — Attempts to build the specified program (see “build” on page 70).
• builder — Opens the MULTI Project Manager (see “builder” on page 70).
• wgutils — Opens the Utility Program Launcher, which provides a GUI
interface to Green Hills utility programs (see “wgutils” on page 71).
build
build [program_or_project_name]
GUI only
builder
builder
GUI only
wgutils
wgutils
GUI only
Opens the Utility Program Launcher, which provides a GUI interface to Green
Hills utility programs. For more information, see the documentation about utility
programs in the MULTI: Building Applications book.
Contents
Call Stack Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Chapter 5. Call Stack Command Reference
The commands in this chapter allow you to view call stacks (also known as call
stack traces or simply stack traces). A call stack lists the stack frames that are
currently active in your program. Each stack frame typically represents a function
call. Stack frames are shown in order from most to least recently created. For more
information about viewing call stacks in the Call Stack window, see “Viewing Call
Stacks” in Chapter 18, “Using Other View Windows” in the MULTI: Debugging
book.
• calls — Displays the current call stack (see “calls” on page 74).
• callsview — Displays the current call stack in the Call Stack window (see
“callsview” on page 75).
• cvconfig — Configures the Call Stack window specified (see “cvconfig”
on page 77).
calls
calls [maxdepth] [ par | nopar ] [ pos | nopos ] [ local | nolocal ] [ types | notypes ]
[ templatetypes | notemplatetypes ] [ showallframes | noshowallframes ]
You can view the call stack in its own window by using the callsview command
(see “callsview” on page 75).
callsview
callsview [%name] [maxdepth] [ par | nopar ] [ pos | nopos ] [ types | notypes ] [
templatetypes | notemplatetypes ] [ showallframes | noshowallframes ] [ win | nowin
[ local | nolocal ] ]
GUI only
Displays the current call stack in the Call Stack window, unless the nowin argument
is specified (see below).
The optional arguments allow you to specify what information should be displayed,
where:
• %name — Specifies a name for the window. name may be either a C string or
an identifier in the style permitted by C (letters, numbers and underscores,
beginning with a letter). name must not be the same as the name of any existing
Call Stack window.
• maxdepth — Specifies the maximum number of stack frames you want to
display. If this argument is not specified, the previously defined value is used.
If no previously defined value exists, the default value is 20. The maximum
value is 32768.
Corresponds to:
cvconfig
cvconfig [%name] key [key]...
GUI only
Configures the Call Stack window identified by name. (The name of a Call Stack
window is the same as the caption that appears in its title bar.) If no name is
specified, cvconfig configures the last Call Stack window that was created or
configured.
This command is primarily intended for use in scripts, since the functionality it
provides is directly accessible from the GUI of the Call Stack window.
*The parameter types and template parameter options only affect functions within
files compiled in C++ mode.
Keys are handled sequentially in the order they are given. The keys stop, refresh,
help, copy, and quit terminate the command when they are encountered, causing
any remaining keys to be ignored. The same is true for any errors encountered
during processing of the keys.
For more information, see “Viewing Call Stacks” in Chapter 18, “Using Other View
Windows” in the MULTI: Debugging book.
Configuration Command
Reference
Contents
General Configuration Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Button, Menu, and Mouse Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Chapter 6. Configuration Command Reference
The configuration commands are broken up into two sections. The general
configuration commands in the first section allow you to configure the Debugger
or IDE. The button, menu, and mouse commands in the second section allow you
to access or configure menus, toolbar buttons, key bindings, and mouse buttons.
For more information about configuring various aspects of the MULTI IDE, see
Chapter 8, “Configuration Options” in the MULTI: Managing Projects and
Configuring the IDE book.
clearconfig
clearconfig
Clears your default configuration for MULTI. Note that this command affects the
entire development environment.
configoptions
configoptions
GUI only
configure
configure config_option [ = | : ] value
configure config_option
configure ?
An example use of this command, which changes MULTI's tab size to 9, follows:
> configure tabsize=9
Note
Do not use this command while the Options window is open.
configurefile
configurefile file
Reads file, which must be a MULTI configuration file, and applies the options it
describes to the current session. MULTI configuration files can be created with the
saveconfigtofile command (see “saveconfigtofile” on page 85).
For more information about configuration files, see “Creating and Editing
Configuration Files” in Chapter 7, “Configuring and Customizing MULTI” in the
MULTI: Managing Projects and Configuring the IDE book.
fileextensions
fileextensions option filename
GUI only
Performs operations that affect the file type and extension mappings used by the
file choosers throughout MULTI. Each operation is performed on a file specified
by filename. The behavior of this command depends on the value of option,
which must be one of the following:
• -load — Loads in extension mappings from the file named filename. The
extension mappings from that file replace all of the extension mappings
throughout MULTI.
• -save — Creates a file named filename that can be loaded to reconstruct
the extension mappings currently in use.
• -append — Inserts the extension mappings from the file named filename
into the existing mappings. Existing extensions that are not modified by
filename are preserved.
fontsize
fontsize -inc | -dec
Changes the size of the source code font, where -inc increments the size and -dec
decrements the size. For more information about configuring fonts, see Source
Code Font and GUI Font in “General Configuration Options” in Chapter 8,
“Configuration Options” in the MULTI: Managing Projects and Configuring the
IDE book.
imagename
imagename [path_to_executable]
By default, MULTI assumes that the final executable resides in the source directory
where it gets built. If the executable will not be located in the source directory and/or
the executable name will change, you must use this command to let MULTI know
where the final executable will be running from. For example, some development
tools automatically move the final executable out of the source directory and into
another directory (sometimes renaming the executable in the process). The executable
image in the alternative directory must be identical to the executable that is built in
the source directory.
This command is only applicable if you are debugging an operating system such
as Linux, Solaris, or Windows and the debug information for your program resides
in a different location than that of the executable file.
loadconfigfromfile
loadconfigfromfile
GUI only
Opens a file chooser that allows you to select a MULTI configuration file to load
into MULTI.
saveconfig
saveconfig
Saves the current configuration settings to the default configuration file. MULTI
reads this file upon startup to restore your configuration settings. See also
“saveconfigtofile” on page 85.
For more information about configuration files, see “Creating and Editing
Configuration Files” in Chapter 7, “Configuring and Customizing MULTI” in the
MULTI: Managing Projects and Configuring the IDE book.
saveconfigtofile
saveconfigtofile
GUI only
This command is similar to the saveconfig command (see “saveconfig” on page 84),
except that it opens a file chooser dialog box that allows you to choose a file in
which to save the configuration. This can be useful when used with the command
configurefile (see “configurefile” on page 82).
For more information about configuration files, see “Creating and Editing
Configuration Files” in Chapter 7, “Configuring and Customizing MULTI” in the
MULTI: Managing Projects and Configuring the IDE book.
setintegritydir
setintegritydir
GUI only
Opens the Default INTEGRITY Distribution dialog box in which you can provide
MULTI with the location of the installed INTEGRITY distribution. This information
is used to add INTEGRITY documentation to MULTI's Help menu and to determine
the default INTEGRITY distribution (used by the Project Wizard). For more
information, see “Configuring MULTI for Use with INTEGRITY or u-velOSity”
in Chapter 2, “MULTI Tutorial” in the MULTI: Getting Started book.
setuvelositydir
setuvelositydir
GUI only
Opens the Default u-velOSity Distribution dialog box in which you can provide
MULTI with the location of the installed u-velOSity distribution. This information
is used to add u-velOSity documentation to MULTI's Help menu and to determine
the default u-velOSity distribution (used by the Project Wizard). For more
information, see “Configuring MULTI for Use with INTEGRITY or u-velOSity”
in Chapter 2, “MULTI Tutorial” in the MULTI: Getting Started book.
source
source [num] [dir]...
source - [dir]...
Specifies directories for MULTI to search to find source files for the debugged
executable.
If, in the first format of the source command, num is specified, the directory
numbered num in the current source path is replaced by the new one given by dir.
If num is specified without a replacement directory, the specified entry is deleted
from the list. The directory list is zero-based. If num is not specified, the specified
directories are added to the list. If no arguments are specified, this command lists
the directories that will be searched.
The second format of the source command discards any previously specified
directories, replacing them with dir (if provided).
In either command format, you can specify multiple directories by separating them
with spaces. If dir itself contains a space, enclose dir in quotation marks. On
Linux/Solaris, directory names may include a tilde (~) as an abbreviation for the
home directory.
Note
If MULTI cannot find the debugging information files associated with
an executable, you must use the loadsym command (see “loadsym”
on page 22) to specify the location of the files.
sourceroot
sourceroot [global] [ clear | list | new_root | remap old_dir1 [,old_dir2]... new_dir1
[,new_dir2]... ]
Clears, lists, creates, or remaps the source root, which is the path MULTI prepends
to each file's relative path, where:
Both the old and new directories are case-sensitive. If you specify multiple
remappings, use a comma to separate the directories; there should not be any
spaces between old_dir1 and old_dir2 or between new_dir1 and
new_dir2. If a path contains a space, enclose the path in quotation marks.
Defining a new source root allows you to build an executable with source files from
one location and debug that same executable with those source files accessible in
a different location.
For example, if you build a project using source files from C:\checkout\src, MULTI
locates the executable and its supporting files relative to this location. Now suppose
you want to debug on a computer where the source files are accessible in X:\src.
You can change the source root by specifying:
> sourceroot remap C:\checkout\src X:\src
You can specify multiple source locations. For example, if you build a project using
source files from /usr/local/proj1/src and /usr/local/shared/src, and you want to
debug on a computer where the source files are accessible in /machine2/src1 and
/machine2/srcshared, you can change both source roots with one command by
specifying:
> sourceroot remap /usr/local/proj1/src,/usr/local/shared/src \
/machine2/src1,/machine2/srcshared
For more information, see the documentation about building and debugging on
different hosts in the MULTI: Building Applications book.
star
star showstarred | showall | toggle
The first format of the star command shows only starred entries in the target list,
or it shows all entries.
The second format of the star command stars/unstars target list entries.
• showstarred — Shows only starred target list entries, their ancestors (if any),
the currently selected target list entry, and stopped entries.
• showall — Shows all target list entries.
• toggle — Toggles between the behavior of showstarred and showall.
• set — Stars the specified target list entry.
• clear — Unstars the specified target list entry.
stars task2 in the target list. If there are multiple task2 target list entries, all
are starred. To star only one of them, you can specify its unique parent, unique
grandparent + parent, etc. For example:
star set myproject AddressSpace1 task2
When specifying the ancestor(s) of the target list entry you want to star/unstar,
you may not skip levels. For example, the following is not permitted:
star set myproject task2
For more information, see “The Star Column” in Chapter 2, “The Main Debugger
Window” in MULTI: Debugging.
syncolor
syncolor [ 0 | 1 ] [a] [C] [k] [d] [n] [s] [c]
GUI only
For example, the command syncolor 0Ck turns off syntax coloring for all
categories, then toggles it on for comments and language keywords, while syncolor
1d turns on syntax coloring for all categories, then toggles it off for dead code.
Without any arguments, syncolor prints the present state of all the categories.
->
-> menu_name
GUI only
This command can also be used to create submenus. For more information, see
“Configuring and Customizing Menus” in Chapter 7, “Configuring and Customizing
MULTI” in the MULTI: Managing Projects and Configuring the IDE book.
customizemenus
customizemenus
GUI only
Opens the Customize Menus window, which allows you to create new menus or
edit existing menus for a number of MULTI tools. For more information, see
“Configuring and Customizing Menus” in Chapter 7, “Configuring and Customizing
MULTI” in the MULTI: Managing Projects and Configuring the IDE book.
customizetoolbar
customizetoolbar
GUI only
Opens the Customize Toolbar window, which allows you to rearrange the order
of buttons on the Debugger toolbar, add pre-defined and custom buttons, and delete
buttons. For more information, see “Adding, Removing, and Rearranging Toolbar
Buttons” in Appendix A, “Debugger GUI Reference” in the MULTI: Debugging
book.
debugbutton, editbutton
debugbutton [num] [name] [c=command] [i=iconname] [h=helpstring] [t=tooltip]
GUI only
This command creates a button named printxy that, when clicked, prints out
the values of the variables x and y in the current context.
• iconname is the name of the button's icon, which may be:
○ A built-in icon. To obtain the names of built-in icons and to see what the
icons look like, select Config → Options → MULTI Editor → Configure
Editor Buttons or, from the Debugger, select Config → Customize
Toolbar → Add Custom Button ( ).
○ The filename of an icon you have created yourself. If only a partial path
is given, it is assumed to be relative to the MULTI IDE installation
directory. For information about creating icons, see “Creating and Working
with Icons” in Chapter 7, “Configuring and Customizing MULTI” in the
MULTI: Managing Projects and Configuring the IDE book.
• helpstring is the text that appears in the status bar when the cursor moves
over the button.
• tooltip is the text that appears when the cursor hovers over the button. If
you do not specify a tooltip, the name of the button is used.
You cannot save debugbutton changes across MULTI sessions. As a result, this
command is generally only useful for the creation or modification of buttons executed
by scripts. For information about how to change the Debugger toolbar permanently,
see “Adding, Removing, and Rearranging Toolbar Buttons” in Appendix A,
“Debugger GUI Reference” in the MULTI: Debugging book.
Note
The debugbutton command does not affect customizations you make
through the Customize Toolbar window. For information about this
window, see “Adding, Removing, and Rearranging Toolbar Buttons” in
Appendix A, “Debugger GUI Reference” in the MULTI: Debugging
book.
inspect
inspect [string]
GUI only
Opens a shortcut menu on string, equivalent to the default behavior when you
right-click string.
This command is generally bound to a mouse click using the mouse command (see
“Customizing Mouse Behavior with the mouse Command” in Chapter 7,
“Configuring and Customizing MULTI” in the MULTI: Managing Projects and
Configuring the IDE book).
keybind
keybind [location]
GUI only
menu
menu [name] [{ { label ['label'] cmd } }]
GUI only
Defines a menu item to attach to a menu bar, MULTI button, mouse button, or
keyboard key. For a complete description of this command, see “Configuring and
Customizing Menus” in Chapter 7, “Configuring and Customizing MULTI” in the
MULTI: Managing Projects and Configuring the IDE book.
The l M (lowercase L, uppercase M) command lists the menus defined with this
command (see “l” on page 111).
mouse
mouse [location]
GUI only
Defines the function of the mouse buttons. For a complete description of this
command, see the “Customizing Mouse Behavior with the mouse Command” in
Chapter 7, “Configuring and Customizing MULTI” in the MULTI: Managing
Projects and Configuring the IDE book.
Note
The command arguments should not be separated by spaces.
Contents
Debugger Note Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Chapter 7. Debugger Note Command Reference
The commands in this chapter allow you to create, access, and delete Debugger
Notes. Debugger Notes allow you to associate notes with any line of source or
assembly code. For more information about Debugger Notes, see Chapter 10, “Using
Debugger Notes” in the MULTI: Debugging book.
• notedel — Deletes one or more Debugger Notes (see “notedel” on page 98).
• noteedit — Creates a new Debugger Note with the properties specified, or
modifies an existing Note (see “noteedit” on page 99).
• notelist — Lists all Debugger Notes that exist for the current executable (see
“notelist” on page 99).
• notestate — Loads Debugger Notes from the specified file, or saves the current
executable's list of Debugger Notes to the specified file (see “notestate”
on page 100).
• noteview — Navigates to the location of the specified Debugger Note or opens
a Note Browser displaying all Debugger Notes for the program being debugged
(see “noteview” on page 100).
notedel
notedel [ @num | address_expression | -all ]
Deletes a Debugger Note with the number specified by @num or at the location
specified by address_expression. (For information about using an
address_expression to specify a location, see “Using Address Expressions in
Debugger Commands” on page 5.) If -all is specified, this command deletes all
Debugger Notes. If no argument is specified, the Note at the current position is
deleted. If the last Note in a group is deleted, that group is also deleted.
noteedit
noteedit [@num] [address_expression] [-name name] [-group group_name] [ -text
text | -prepend text | -append text ] [-noedit]
Creates a new Debugger Note with the properties specified, or modifies an existing
Note.
• @num — Specifies the number of the Debugger Note that will be modified.
• address_expression — Specifies the location of the Debugger Note that
will be modified. See “Using Address Expressions in Debugger Commands”
on page 5.
• -name name — Specifies the name of the Debugger Note.
• -group group_name — Specifies the group to which to the Debugger Note
belongs.
• -text text — Specifies the text contained in the Debugger Note.
• -prepend text — Prepends text to an existing Debugger Note.
• -append text — Appends text to an existing Debugger Note.
• -noedit — Suppresses the Edit Note dialog box.
If @num is specified, or @num is not specified and the location specified already
contains a Note, that Note will be edited. If name, group, or text is specified, it
will be changed in the Note.
notelist
notelist [-menu]
Lists all Debugger Notes that exist for the current executable. If no argument is
specified, the Notes are listed in the command pane.
If -menu is specified, a shortcut menu displays the names of the Notes, which you
can use to navigate to one of the Notes. The Notes are divided by group with the
group name dimmed at the beginning of each group. In addition, the four most
recently used Notes are displayed at the top of the menu.
notestate
notestate [ -load filename | -save filename ]
Loads Debugger Notes from the specified file, or saves the current executable's list
of Debugger Notes to the specified file.
If you load Notes from a file, they are merged into the executable's existing list of
Notes (if any). Notes that already exist at a specific location are not replaced by
Notes loaded from the file.
noteview
noteview [ @num | -prev | -next | -error ]
Navigates to the location of the specified Debugger Note or opens a Note Browser
displaying all Debugger Notes for the program being debugged, where the arguments
have the following effects:
Contents
Display and Print Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Chapter 8. Display and Print Command Reference
The commands in this chapter allow you to print information to the command pane
and control certain aspects of the MULTI Debugger's display. For information about
the main Debugger window's display, see Chapter 2, “The Main Debugger Window”
in the MULTI: Debugging book.
asmmode
asmmode -reset | -query [name] | -set name[=val] | -clear name | -toggle name
Changes target-specific mode variables, which may affect the behavior of the
disassembler and/or other target-specific behavior in the Debugger.
Whether this command is available, and which variables it allows you to manipulate,
depends on the Compiler release you are using and the target architecture of the
program you have selected in the Debugger.
If you need more information about the semantics of a specific mode variable, please
contact Green Hills support.
assem
assem [ on | off | tog | nosource ]
GUI only
Controls the display mode of the Debugger window's source pane, where:
• off — Shows source code only. This option corresponds to View → Display
Mode → Source Only and the button when not selected.
• tog — Toggles the display between source code only and interlaced source
code with disassembly. This is the default.
• nosource — Shows disassembly only. This option corresponds to View →
Display Mode → Assembly Only.
If this option is used and the current file contains no program code (such as a
header file), the source file is displayed, but if you navigate to another file that
contains program code, the Debugger displays disassembly only.
cat
cat filename [filename]...
Prints the contents of the specified files to the command pane. Multiple files will
be printed in the order specified, one after the other. If you specify a filename
containing a space, you must enclose filename in double quotation marks.
clear
clear [ cmd | target | io | serial | python | traffic ]
GUI only
Clears the command pane, target pane, I/O pane, serial terminal pane, Python pane,
or traffic pane of the Debugger. With no arguments, this command clears the pane
that is currently visible in the Debugger. With cmd, target, io, serial, python,
or traffic specified, this command clears the specified pane.
comeback
comeback
GUI only
Restores the Debugger and debug-related windows after the goaway command has
hidden them (see “goaway” on page 110).
The goaway and comeback commands are only useful when MULTI is being
externally controlled via a command script because there is no way to interactively
issue comeback after goaway has hidden the Debugger.
components
components [component_name]
Lists components and their aliases. When run without the component_name
argument, components lists the unique name of all components in the system along
with a short list of aliases (if any) for each component. When a specific component
name is specified, components lists that component's unique name along with all
of its aliases.
where number is unique for each component, and increases from 1. The unique
names of components may change between releases as new types of components
are added.
To create a new alias for a new component, use the new command (see “new”
on page 26).
dbprint
dbprint [ w | f ]
GUI only
Prints the source currently being viewed in the Debugger. If f is specified, the entire
source file will be printed. If w is specified, only the source lines that are currently
visible in the Debugger window will be printed. If you run this command without
arguments, it has the same effect as dbprint w.
debugpane
debugpane [ cmd | target | io | serial | python | traffic | next | prev ]
GUI only
Changes the Debugger command pane to the specified pane. There are six possible
panes: the command pane, the target pane, the I/O pane, the serial terminal pane,
the Python pane, and the traffic pane.
Specifying cmd, target, io, serial, python, or traffic will switch to that
pane. Specifying next or prev will switch to the next or previous pane (in the
order: command pane, target pane, I/O pane, serial terminal pane, Python pane,
traffic pane). With no arguments, debugpane will switch to the next pane. See also
“savedebugpane” on page 117.
In addition to this command, the Debugger also includes six tabs that allow you to
switch panes. See “The Cmd, Trg, I/O, Srl, Py, and Tfc Panes” in Chapter 2, “The
Main Debugger Window” in the MULTI: Debugging book.
dumpfile
dumpfile [filename]
GUI only
Writes the contents of the Debugger's source pane to a text file, or, if debug
information is available, writes the entire file. You can use this command to capture
your program's disassembly, as well as source interlaced with your program's
disassembly. The output is written to the specified file, creating the file if necessary.
If no file is specified, you are prompted to name one.
E
E [ stack | +[num] | -[num] ]
Displays the source code corresponding to the stack frame you specify. If there is
no source for the instructions near the program counter, the Debugger will display
the disassembly of your program at that location.
• E — Displays the function at the top of the stack. This option corresponds to
e 0_ (see “e” on page 143), , and View → Navigation → Current PC.
• E stack — Displays the function at call stack frame number stack. Equivalent
to the e num_ command (see “e” on page 143).
• E +[num] — Displays the function num functions above the currently visible
function on your process's call stack, where num defaults to 1 if not specified.
For example, E +1 displays one function above the current one on the stack.
This is different from E 1, which displays the function at stack frame number
one.
echo
echo text
Prints the given text to the command pane, removing quotation marks if there are
any. For example, both of the following give the same result:
> echo foo bar
foo bar
> echo "foo bar"
foo bar
This command differs from the print command, in that the Debugger does not
attempt to evaluate the given text as a programmatic expression (see “p, print”
on page 115).
eval
eval expr
Evaluates expr, which is an expression in the current source language. Note that
this command may read from and write to target memory. This command is similar
to the print command (see “p, print” on page 115), except that it does not echo the
results. This command should be used instead of the print command when
performing I/O accesses, since printing the result of expr may cause an extra read
of the I/O address.
For example:
> eval *(int *)0xffffa0c0 = 0x123
will write 0x123 to the address 0xffffa0c0. For information about accessing I/O
memory, see also the system variable _CACHE in “System Variables” in Chapter
14, “Using Expressions, Variables, and Function Calls” in the MULTI: Debugging
book.
examine
examine [/format] expr
examine address_expression
examine numberb
Examines the given object, possibly with the given formatting options. This
command has three forms:
goaway
goaway
GUI only
Hides the Debugger and debug-related windows such as the Data Explorer, the
Register View window, and the Memory View window. MULTI Editor windows
that were opened from the Debugger are also hidden. Use the comeback command
to restore these windows (see “comeback” on page 105).
The goaway and comeback commands are only useful when MULTI is being
externally controlled via a command script because there is no way to interactively
issue comeback after goaway has hidden the Debugger.
l
l [object [string]]
l?
Lists various Debugger objects. In the first format of this command, the string
argument typically restricts file lists to objects whose names contain string and
other lists to objects whose names start with string. Exceptions are stated below.
The second format of this command lists run-mode tasks. l T prints at most 15
characters per task name. l Tx does not limit the number of characters printed.
the string parameter is given and it does not contain a dot, it is treated as a
pattern that may contain wildcards, and only functions matching the pattern
are displayed. An asterisk (*) in the list indicates that the function has no
debugging information.
• g — Lists the names and addresses of all global variables, as well as static
variables that are in scope for the current file.
• i — Lists source files included by the currently displayed file (string
parameter ignored).
• m — Lists functions with their mangled names. Same as l F except that the
mangled names of C++ functions are also listed.
• M — Lists menus defined with the menu command. If the optional string
parameter is provided, lists the contents of the menu whose name has been
specified. See “Configuring and Customizing Menus” in Chapter 7,
“Configuring and Customizing MULTI” in the MULTI: Managing Projects
and Configuring the IDE book.
• P — Lists processes (string parameter ignored).
• r — Lists registers. See also “The View Menu” in Appendix A, “Debugger
GUI Reference” in the MULTI: Debugging book and “regview” on page 189.
• R — Lists register synonyms.
• s — Lists MULTI special variables. System variables that begin with an
underscore (_) represent the internal state of the Debugger and are excluded
by default, but you can list them with l s _.
• S — Lists static variables. If the optional string parameter is given and it
contains a dot (.), only static variables in file string are displayed. If the
string parameter is given and it does not contain a dot, only static variables
whose names start with string are displayed.
• t — Lists type definitions.
• z — Lists signals (string parameter ignored).
• func — Lists all locals and parameters of the function func (which must be
on the stack). If func is a C++ instance method, this argument lists the this
pointer as well. If func starts with an @, the addresses of all locals, parameters,
and this are printed.
map
map [ filename | -modules | -find address ]
Lists the section address map for the current program, including section starts, ends,
and sizes.
• filename — Lists the section address map for the specified module only.
• -modules — Lists the names and locations of the currently loaded modules.
• -find address — Lists the module and section that contains the specified
memory address.
mprintf
mprintf (format_string, ...)
Prints to the command pane. This command takes the same syntax as the C library
printf() function, except that the %n conversion specifier is not supported.
mrulist
mrulist subcommand [args]
GUI only
Allows you to display and modify the contents of the most recently used (MRU)
lists. Two examples of MRU lists are the recent files list (with listname
EditedFiles) and the recent projects list (with listname Projects).
mute
mute state
Controls how much output from Debugger commands is displayed. The argument
state is required and must be one of the following:
• off — All output from Debugger commands is displayed. This is the default
setting.
• some — Only serious error messages are displayed. All other output is
suppressed.
• on — All output from Debugger commands is suppressed, including all error
messages.
p, print
p [/format] expr
Displays the value of the expression expr, using the format format, by evaluating
the expression exactly as the current language does. The expression expr can be
any expression in the current language. For a list of available formats, see
“Expression Formats” in Chapter 14, “Using Expressions, Variables, and Function
Calls” in the MULTI: Debugging book.
See also “echo” on page 109, “eval” on page 109, and “examine” on page 110.
printline
printline [count [line]]
Prints count source lines, starting at the file-relative line number line. If count
is not specified, one line is printed. If line is not specified, the current line is the
starting point. The current line is updated to the last line printed after this command
is executed, which will change the source display in GUI mode.
printphys
printphys [ address | expression ]
Takes in a numerical address or an address expression and prints the physical address
mapped to that virtual address. The following example output is from a Power
Architecture INTEGRITY target being debugged in freeze mode:
> printphys $pc
Virtual: 0x00010318 (main)
Physical: 0x00345318
Note
This command is not supported in run mode or if a TimeMachine-enabled
task is selected in the target list and the target processor does not support
data trace.
printwindow
printwindow [line [num]]
Prints a section of source code, num lines long, centered around the file-relative line
line. The default value for num is specified by the system variable _LINES, which
defaults to 22. The default for line is the current line. See “System Variables” in
Chapter 14, “Using Expressions, Variables, and Function Calls” in the MULTI:
Debugging book. The current line is indicated by a greater-than sign (>) between
the line numbers and the source code. The current viewing position is not affected
by this command. See also “printline” on page 115.
pwd
pwd
By default, this is the directory in which your program runs. However, this may be
overridden by the rundir command or by its GUI equivalent, the Start in field of
the Arguments dialog box. See “rundir” on page 170 and “The Arguments Dialog
Box” in Appendix A, “Debugger GUI Reference” in the MULTI: Debugging book.
Q
Q[0|1|b]
Sets or toggles the Debugger's quiet mode. The command Q 0 turns off quiet mode
(the default for quiet mode is off), the command Q 1 turns on quiet mode, and the
command Q alone toggles quiet mode. When the Debugger is in quiet mode, many
commands are less verbose. For example, when a breakpoint is being set or toggled
in quiet mode, the breakpoint will not be echoed to the command pane.
The command Q b is valid only in a breakpoint's command list. When the process
stops at a breakpoint that contains Q b in its command list, the Debugger will not
print a message about the breakpoint being hit (Stopped by breakpoint).
savedebugpane
savedebugpane [[cmd]|[target]|[io]|[serial]|[python]|[traffic]] ["filename"]
GUI only
Saves the contents of the specified Debugger pane to the file filename. If you do
not specify filename, a Save As dialog box prompting you to choose a file appears.
There are six possible panes: the command pane, the target pane, the I/O pane, the
serial terminal pane, the Python pane, and the traffic pane. If you do not specify a
pane, the contents of the currently visible pane are saved. See also “debugpane”
on page 107.
windowcopy
windowcopy wid=num
GUI only
Copies the current selection in the window specified by the window identification
number, num, to the clipboard. For more information about window identification
numbers, see “Customizing Keys and Mouse Behavior” in Chapter 7, “Configuring
and Customizing MULTI” in the MULTI: Managing Projects and Configuring the
IDE book.
windowpaste, windowspaste
windowpaste wid=num
windowspaste wid=num
GUI only
Pastes the current selection into the input buffer of the window whose identification
number is num. This command is typically used as part of a mouse or keybind
command. For more information about the mouse and keybind commands and
window identification numbers, see “Customizing Keys and Mouse Behavior” in
Chapter 7, “Configuring and Customizing MULTI” in the MULTI: Managing
Projects and Configuring the IDE book.
Contents
Help and Information Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Chapter 9. Help and Information Command Reference
The commands in this chapter allow you to access help information or information
about your MULTI installation.
about
about
In GUI mode, this command opens a dialog box that contains information about
the current version of MULTI. In non-GUI mode, this command prints this
information to standard output.
aboutlic
aboutlic
GUI only
bugreport
bugreport
GUI only
Launches the gbugrpt utility, which displays information about your MULTI
installation and allows you to append it to a bug report form that you can fill out
and email to Green Hills Software's Technical Support.
help
help [ keyword | multi_command | configuration_option ]
info
info
• Debugging status
• Current target connection
• On Linux/Solaris, core file status
usage
usage command
The conventions for displaying the command syntax in the command pane are
similar to those used in this book (see “Conventions Used in the MULTI Document
Set” on page xviii), with the following exception: In the syntax returned by the usage
command command, words that appear in all capital letters are placeholders and
should be replaced in your actual command line with a value appropriate for your
context. (These placeholders appear in italics, rather than capital letters, in the print
and online documentation.) For example, FILENAME indicates that you should
substitute the name of the file to be used for the operation performed by the
command.
Contents
General Memory Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Chapter 10. Memory Command Reference
• verify — Verifies that the contents of memory match the contents of the
executable program file (see “verify” on page 139).
compare, compareb
compare -gui
compareb -gui
The -gui argument to the compare or compareb command opens a window where
you can enter the parameters for comparing two blocks of memory.
The second format of the compare and compareb commands compares the elements
of two regions of memory beginning at the addresses src1 and src2. The size of
the block of memory that is compared is determined by length for the compare
command and bytes for the compareb command.
Corresponding elements from the two locations are each compared in turn, using
the given operation (see below), where each element is size bytes long. For the
compare operation, the total size in bytes of the blocks compared is (length x
size), and for the compareb operation it is bytes. The argument size may be
either 1, 2, 4, or 8 bytes. If size is not specified, the default is the size of an integer
on the target system.
• <= — The element in src1 is less than or equal to the element in src2.
• < — The element in src1 is less than the element in src2.
• >= — The element in src1 is greater than or equal to the element in src2.
• > — The element in src1 is greater than the element in src2.
• == — The element in src1 is equal to the element in src2.
• !=— The element in src1 is not equal to the element in src2.
The compare and compareb commands print each pair of corresponding elements
that have the relationship described by operation. The following example compares
two overlapping arrays of six 4-byte integers. The first array starts at 0x10000, and
the second at 0x10008. The compare command displays only the pairs that satisfy
operation.
These commands require that MULTI be connected to a target and that the target
be in a state such that MULTI can access memory.
copy, copyb
copy -gui
copyb -gui
The -gui argument to the copy or copyb command opens a window where you
can enter the parameters for copying one region of memory to another.
The second format of the copy and copyb commands copies a block of memory
with elements of size size from src to dest. For the copy command, the block
consists of length elements of size size. Thus, the total size of memory copied
in bytes is (length x size). For the copyb command, the total size of the block
Reverse copying is the same as forward copying, except that the elements at the
end of the block are written first, before the elements at the beginning of the block.
Reverse copying will have the same effect as forward copying, unless the src and
dest regions overlap.
These commands require that MULTI be connected to a target and that the target
be in a state such that MULTI can access memory.
disassemble
disassemble [-quiet] addr_expr [size]
fill, fillb
fill -gui
fillb -gui
The -gui argument to the fill or fillb command opens a window where you can
enter the parameters for filling a specified block of memory.
The second format of the fill and fillb commands fills the target's memory with the
given value. For the fill command, the block starts at dest and extends for length
elements of size bytes. Thus, the total size of the block in bytes is (length x
size). For the fillb command, the block has a length in bytes of bytes. The block
will be filled with value, or zero if value is not specified. The argument size is
the number of bytes to place value in and may be either 1, 2, 4, or 8. If size is
not specified, the default is the size of an integer on the target system. If value is
too large to fit in the elements of the size given, the most significant bits of value
are truncated.
A progress bar is shown for the second format of the fill and fillb commands unless
-noprogress is specified.
These commands require that MULTI be connected to a target and that the target
be in a state such that MULTI can access memory.
find, findb
find -gui
findb -gui
The -gui argument to the find or findb command opens a window where you can
enter the parameters for searching for a value in memory.
The findb -gui command corresponds to the Memory View menu selection
Memory → Find.
The second format of the find and findb commands searches memory starting at
src for an element that is size bytes long and has the given value. The argument
size may be 1, 2, 4, or 8 bytes and, if not specified, is the size of an integer on the
target system. For the find command, the search stops when length elements have
been checked. For the findb command, the search stops when bytes bytes have
been checked. If mask is specified, it is logically ANDed with each memory location
value before being compared with value. Every match found is listed on a separate
line with the address of the match.
A progress bar is shown for the second format of the find and findb commands
unless -noprogress is specified.
These commands require that MULTI be connected to a target and that the target
be in a state such that MULTI can access memory.
flash
flash gui [program_name]
The gui argument to the flash command opens a window where you can enter the
parameters for writing a file to flash memory on the target. The available option is:
The burn argument to the flash command causes the MULTI Fast Flash
Programmer to write a file to flash memory on the target, where:
This command requires that MULTI be connected to a target and that the target be
in a state such that MULTI can access memory.
For more information, see “Programming Flash Memory” in the MULTI: Debugging
book.
memdump
memdump -gui
The -gui argument to the memdump command opens a window where you can
enter the parameters for copying a block of memory on the target to a file on the
host.
The second and third formats of the memdump command copy a section of memory
on the target to a file on the host, where:
• -append — Adds data to the end of the file rather than overwriting existing
data in the file.
• -noprogress — Does not show a progress bar for the operation.
• srec — Specifies Motorola S-Record format.
• raw — Specifies raw binary data.
• filename — Specifies the file that memory is copied to.
• start — Specifies the starting address in memory to dump.
• length — Specifies how many bytes of data to dump to the file, beginning at
start.
• section — Specifies the name of a section in memory to dump.
Both the memload and memdump commands support these file formats: S-Record,
raw, and default. If you do not specify srec or raw, the default format is used. For
a detailed description of these formats, see “memload” on page 133.
This command requires that MULTI be connected to a target and that the target be
in a state such that MULTI can access memory.
memload
memload -gui
memload [ srec | raw | legacy ] [-w size] [-noprogress] filename [-offset file_offset]
[ start [length] | section ]
The -gui argument to the memload command opens a window where you can
enter the parameters for loading the contents of a file on the host machine into a
portion of memory on the target.
The second format of the memload command loads the contents of a file on the
host machine into a portion of target memory, where:
Both the memload and memdump (see “memdump” on page 132) commands
support these file formats: S-Record, raw, and default.
To use the S-Record format, specify the srec option. If the arguments size, start,
length, or section are specified, they are ignored. The file is read as a Motorola
S-Records file.
To use the raw format, specify the raw option. In this format, the file contains only
the binary data, with no formatting or header information. This format is appropriate
for transferring data to external tools that deal with binary data. You must specify
start and optionally length, or you must specify section. This command loads
filename, starting at the first byte of the file (unless -offset file_offset is
specified) and continuing for length bytes. To skip a number of bytes at the
beginning of the file, use the -offset file_offset option. If length is not
specified, this command will load the entire content of the file (without -offset
file_offset) or the remainder of the file (with -offset file_offset).
To use the legacy format, specify the legacy option. This loads default format files
that were created by MULTI 4 or earlier.
To use the default format, do not specify the srec, raw, or legacy option. This
file format is proprietary and non-portable. The address (8 bytes) and size (4 bytes)
of the memory region is stored at the beginning of the file in host byte order. The
actual content of the memory region follows the address and size, and is handled
as a series of bytes. If start, length, and section are omitted, the values
specified when the file was created are used.
If MULTI is always run on a single host, the default format is the easiest to use
when dumping memory to be read back into MULTI. Because the memdump
command records the address and size in the file (see “memdump” on page 132), it
is not necessary to specify start, length, or section when using the memload
command to load a file into memory that was created with memdump.
This command requires that MULTI be connected to a target and that the target be
in a state such that MULTI can access memory.
memread
memread size address
Performs a sized memory read from the target and prints the result. This command
is intended to be used to perform low-level reads from regions of memory or
memory-mapped I/O registers. This command does not make use of MULTI's
memory cache, and the read is performed immediately. See also the system variable
_CACHE in “System Variables” in Chapter 14, “Using Expressions, Variables, and
Function Calls” in the MULTI: Debugging book.
size may be 1, 2, or 4. Some targets, such as the Green Hills Probe and
INTEGRITY version 10 and later, also support 8. The units are bytes. address
must be aligned correctly to the nearest size bytes.
memtest
memtest start_addr end_addr -size=size -test=test_choice [-pattern=value] [
-complement | -rotate | -random | -complement -rotate ] [-maxtransitions]
[-resetpattern] [ -repeat=number_of_tests | -continuous ] [ -maxerr=number_of_errors
| -writeonly ] [-tgtagent] [ -tgtagentstart | -tgtagentend | -tgtagentloc=expr ]
More than one of the destructive memory test options (a1, a0, d1, d0, and p)
can be specified by using multiple -test=test_choice arguments. The
nondestructive tests (r, cr, cc, and fr) must be performed individually. For
descriptions of these tests, see “Types of Memory Tests” in “Testing Target
Memory” in the MULTI: Debugging book.
• -pattern=value — Specifies the data value to use for address bus walking
and/or data pattern tests.
• -complement — Causes the data pattern value for pattern tests to be
complemented between memory writes. (This option can be passed with the
-rotate option. If both -complement and -rotate are specified, the pattern
will be rotated every other write and complemented every write, resulting in a
write sequence similar to 0x01, 0xfe, 0x02, 0xfd, ...)
• -rotate — Causes the data pattern for pattern tests to be rotated between
writes. (This option can be passed with the -complement option as well,
causing the pattern value to be both complemented and rotated between
iterations. See the description for -complement above.)
• -random — Causes a pseudorandom sequence of values to be used for the
pattern test. (This option cannot be used with either the -complement or the
-rotate options.)
• -maxtransitions — Causes MULTI to use a sequence of addresses in the
data pattern or memory read tests that maximizes the address line transitions
between accesses. (The default behavior is to access memory sequentially from
low addresses to high addresses.)
• -resetpattern — Causes MULTI to use the same starting pattern value for
each test iteration rather than using a complemented, rotated, or subsequent
pseudorandom value.
• -repeat=number_of_tests — Specifies the number of times to repeat a
test or tests. (This option cannot be passed with the -continuous option, and
does not apply to the CRC compute or find start/end ranges tests.)
If a -repeat value is specified with multiple memory tests, all selected tests
are run during each iteration. For example, the options -test=a0 -test=p
-repeat=2 would set the test sequence as:
• -continuous — Specifies that the test(s) will run continuously. (This option
cannot be passed with the -repeat=number_of_tests option, and does not
apply to the CRC compute or find start/end ranges tests.)
• -maxerr=number_of_errors — Causes MULTI to abort the test(s) after
detecting the specified number of errors. This option cannot be used with the
-writeonly option.
• -writeonly — Causes MULTI to skip the reading phase of the address bus
walking, data bus walking, and data pattern tests. This option cannot be used
with the -maxerr=number_of_errors option.
• -tgtagent — Causes MULTI to download and use a target-resident agent to
perform the memory tests (rather than using the Debugger).
• -tgtagentstart — Specifies that the target agent be placed at the start of
the memory range to be tested. This option is only valid when used with the
-tgtagent option.
• -tgtagentend — Specifies that the target agent be placed at the end of the
memory range to be tested. This option is only valid when used with the
-tgtagent option.
• -tgtagentloc=expr — Specifies that the target agent be placed at the location
specified by the expression expr. This memory location should not overlap
the test range, and must be valid for the test to be performed successfully.
For further details about test types and options, see “Advanced Memory Testing:
Using the Perform Memory Test Window” in “Testing Target Memory” in the
MULTI: Debugging book and “Types of Memory Tests” in “Testing Target Memory”
in the MULTI: Debugging book.
Note
The memtest command syntax can be complex, because of the variety
of test types and options available. For this reason, we recommend that
you use the Memory Test Wizard or the Perform Memory Test window
to configure and run memory tests. Even if you want to write scripts that
contain memory testing commands, you can still use the interactive
interfaces to determine the exact command syntax for the specific testing
options you want to use. To do this, use one of these GUIs to configure
the test you want to run, and then run the test. When the test completes,
the Memory Test Results window will display the exact command syntax
that corresponds to the testing options you specified. You can use the
command syntax given there from the Debugger command pane or in
scripts you write. For more information, see “Advanced Memory Testing:
Using the Perform Memory Test Window” in “Testing Target Memory”
in the MULTI: Debugging book and “Viewing Memory Test Results” in
“Testing Target Memory” in the MULTI: Debugging book.
memwrite
memwrite size address value
Performs a sized memory write to the target. This command is intended to be used
to perform low-level writes to regions of memory or memory-mapped I/O registers.
This command does not make use of MULTI's memory cache, and the write is
performed immediately. This command has two possible formats.
In the first format, without -str specified, memwrite performs a sized memory
write, where:
• size — Specifies the access size in bytes and may be 1, 2, or 4. Some targets,
such as the Green Hills Probe and INTEGRITY version 10 and later, also
support 8.
• address — Specifies the memory address at which to begin writing. address
must be aligned correctly to the nearest size bytes.
• value — Specifies the value to be written. If value is too large to fit in size
bytes, it is truncated to fit.
In the second format, with -str specified, memwrite writes the specified string
to the target, including the terminating null character, where:
verify
verify [-quiet] [-sparse] -all | -recheck | -section section_name | address_expression
[num_addresses]
Verifies that the contents of memory match the contents of the executable program
file. If there are any coherency errors (that is, discrepancies), the associated lines
are highlighted in the source pane, and a list of differing addresses are printed to
the command pane (both the in-memory and the executable program file values are
shown). A progress bar displays the work done; Esc aborts processing.
• -quiet — Highlights lines associated with coherency errors but does not print
output to the command pane. Highlighting is done in the source pane.
• -sparse — Verifies only a few bytes at the beginning, middle, and end of the
indicated range. This allows you to run a quick coherency scan rather than a
complete test. This option has no meaning and is ignored if specified in
conjunction with -recheck.
• -all — Verifies all downloaded non-data sections that cannot be written to.
The .text section is an example of one such section. This may take a long
time.
You can verify sections from any module loaded into target memory (including
shared objects such as libc.so). However, if multiple identically named sections
exist, verify -section section_name verifies only the first section_name
it finds. For example, if .text appears first in a shared object and then in an
executable program file, verify -section .text finds .text only in the shared
object. To more accurately specify sections, use the map command to determine
the starting address and size of the section you want to verify (see “map”
on page 113).
For more information about coherency errors, see “Detecting Coherency Errors”
in “Testing Target Memory” in the MULTI: Debugging book.
Navigation Command
Reference
Contents
Navigation Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Chapter 11. Navigation Command Reference
The commands in this chapter allow you to navigate the code displayed in the
Debugger source pane. See also Chapter 16, “Search Command Reference”
on page 229.
Navigation Commands
The following list provides a brief description of each navigation command. For a
command's arguments and for more information, see the page referenced.
• + — Moves your current viewing position in the source pane the specified
number of lines toward the end of the file (see “+” on page 143).
• - — Moves your current viewing position in the source pane the specified
number of lines toward the beginning of the file (see “-” on page 143).
• e — Navigates around your program in the Debugger's source pane (see “e”
on page 143).
• indexnext — Changes the current viewing location to the next item in
Debugger's history list (see “indexnext” on page 144).
• indexprev — Changes the current viewing location to the previous item in the
Debugger's history list (see “indexprev” on page 145).
• number — Moves your current viewing position in the source pane to the
file-relative line number specified (see “number” on page 145).
• scrollcommand — Scrolls the given window by the specified amount and in
the specified direction (see “scrollcommand” on page 145).
• switch — Changes the selection in the target list, and optionally opens a new
Debugger window on the selection or brings an existing new window to the
front (see “switch” on page 147).
• uptosource — Displays the first function on the stack that contains source
code (see “uptosource” on page 147).
+
+ [num]
GUI only
Moves your current viewing position in the source pane num lines toward the end
of the file. The default value for num is 1 line.
-
- [num]
GUI only
Moves your current viewing position in the source pane num lines toward the
beginning of the file. The default value for num is 1 line.
e
e [address_expression]
Navigates around your program in the Debugger's source pane. You can also use
this command to open a Browse window. This is one of the most powerful and
commonly used navigation features of the MULTI Debugger.
• e — Shows current file, function, line number, and address. For example:
test.c:PrintLine#28: 0x411c
• e func — Displays func if there is an exact match for it. func may contain
wildcards. Note that if func matches the name of a file and a function, the file
is displayed, not the function. If there are no matches for func, the e command
operates on func*. If there are multiple matches, a Browse window opens to
display all of them.
indexnext
indexnext
GUI only
Changes the current viewing location to the next item in Debugger's history list.
See also “Using Navigation History Buttons” in Chapter 9, “Navigating Windows
and Viewing Information” in the MULTI: Debugging book.
Corresponds to:
indexprev
indexprev
GUI only
Changes the current viewing location to the previous item in the Debugger's history
list. See also “Using Navigation History Buttons” in Chapter 9, “Navigating
Windows and Viewing Information” in the MULTI: Debugging book.
Corresponds to:
number
number
GUI only
Moves your current viewing position in the source pane to the file-relative line
number number. This command ignores the option Use function relative line
numbers (vs. file relative) (procRelativeLines).
scrollcommand
scrollcommand [ + | - ] max[ l | c ] [wid=num]
GUI only
Scrolls the window indicated by the identification number num by the specified
amount and in the specified direction.
With Format 1, the window is scrolled completely to the beginning (-max) or the
end of its view (+max or max).
With Format 2, the window is scrolled to the previous page (-page) or the next
page (+page or page).
With Format 3, the window is scrolled by the count number of lines or characters,
where count may be positive or negative.
If count, max, or page is followed by the letter c, the scroll is horizontal and count
corresponds to the number of characters.
If count, max, or page is followed by the letter l (lowercase L), the scroll is vertical
and count corresponds to the number of lines. Vertical scrolling is the default, if
neither c nor l is specified.
The window identification number num is obtained by using the special sequence
%w with either the mouse command or the keybind command (see the keybind and
mouse commands in “Customizing Keys and Mouse Behavior” in Chapter 7,
“Configuring and Customizing MULTI” in the MULTI: Managing Projects and
Configuring the IDE book). If no window identification number is specified, the
source window is used.
For example, the following command scrolls the source pane one line towards the
end of the file:
> scrollcommand 1
The following scrolls the pane that is currently visible in the Debugger (for example,
the command pane) backwards by two lines:
> scrollcommand -2 wid=-2
The following scrolls the source pane three characters to the right:
> scrollcommand 3c
Both of the following commands scroll the source pane to the beginning of the
code:
> scrollcommand -max
> scrollcommand -maxl wid=-1
switch
switch -direction up | -direction down | -direction up+ | -direction down+ | -selectall
| -component component_name | -item item_prefix [-new_window]
Changes the selection in the target list, and optionally opens a new Debugger window
on the selection or brings an existing new window to the front. The arguments for
this command are:
uptosource
uptosource
Displays the first function on the stack that contains source code. This command
does not change the program counter or execute any program instructions on the
target.
Profiling Command
Reference
Contents
profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Chapter 12. Profiling Command Reference
The command in this chapter allows you to control MULTI's profiling capabilities,
enable the collection of profiling data, open the Profile window, and access profiling
information.
Unless otherwise stated, the button and menu choices listed alongside the profile
command options are displayed in the Profile window.
For more information about profiling, see Chapter 17, “Recording and Viewing
Profiling Data” in the MULTI: Debugging book.
For information about the protrans shell command, which is used to invoke the
protrans utility, see the documentation about the protrans utility in the MULTI:
Building Applications book.
profile
profile [ start | stop | process ] [mode ( performance | coverage )] [import64 filename]
[select ( all | none ) functions ] [filter ( save | load ) filename ] [save filename] [load
filename] [print ( tasks | files | functions | functions_source | coverage |
coverage_source | blocks )] [collect filename] [traceimport] [csvexport [tasks
filename] [files filename] [functions filename] [functions_source filename] [coverage
filename] [coverage_source filename] [blocks filename]] [display ( none | percent
| coverage )] [clear] [close]
The above parentheses are used for grouping; they are not a part of the command.
GUI only
• process — Collects instrumented profiling data from the target, adds an entry
for it in the Profile window's Available Recordings list, and loads it into the
display. This option corresponds to the Process button.
• mode — Opens the Profile window in one of the following view modes, or
resets the view mode in the existing Profile window to one of the following
values:
○ performance — Displays PC sampling information or trace information
in performance mode (corresponds to Mode: PC Sampling and Mode:
Performance (Trace), respectively).
○ coverage — Displays coverage information generated from trace data
(corresponds to Mode: Coverage), or displays instrumentation data, which
includes instruction-level performance information and/or coverage (Mode:
Instrumentation).
• import64 filename — Imports a bmon64.out file into a new recording.
The Debugger must be open on the executable for which the profile data is
being imported, and that executable must be selected in the target list.
• select — Adds or removes functions from the filter:
○ all functions — Adds all functions.
○ none functions — Removes all functions.
• filter — Saves or loads the filter:
○ save filename — Saves the filter to the specified file. The default file
extension is .gprf.
If you subsequently modify your program and then load the saved filter,
any new items in your program are checked in the filter unless a parent
item was cleared. For example, a new file will be checked unless the
containing directory was cleared in the saved filter.
○ load filename — Loads the filter from the specified file.
• save filename — Saves the current recording into a .gpro file.
• load filename — Loads the .pro, .gpro, or bmon.out file filename into
a new recording. If you are loading a bmon.out or .pro file, the Debugger must
be open on the executable for which the profile data is being imported, and
that executable must be selected in the target list.
○ blocks — Exports the contents of the Blocks list on the Blocks tab to
filename. This exports blocks for all visible functions, not just the blocks
visible in the Profile window.
Program Execution
Command Reference
Contents
General Program Execution Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Continue Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Halt Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Run Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Signal Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Single-Stepping Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Task Execution Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Chapter 13. Program Execution Command Reference
The commands in this chapter allow you to control the execution of programs in
the Debugger.
g
g address_expression
getargs
getargs
Shows the current arguments that will be passed to your program the next time it
is run. Support for passing program arguments to applications started from MULTI
is target and operating system specific.
The following example shows the use of setargs, getargs, and r. (See also “setargs”
on page 157 and “r” on page 167.)
setargs
setargs [program_arguments]
Sets arguments for the next time the program is started from MULTI. Support for
passing program arguments to applications started from MULTI is target and
operating system specific. If no arguments are specified, no arguments will be
passed to the program.
Arguments must be in a space-separated list and may contain <, >, or >> to redirect
standard input (stdin) and standard output (stdout). Text between quotation
marks, either single (' ') or double (" "), is treated as a single argument. The
quotation marks are removed and are not sent to the program. Arguments containing
the MULTI command syntax comment delimiter (//) must be enclosed in quotation
marks (for example, setargs -perform_url_operation
"http://www.example.com").
On Windows, this command uses Windows command line argument parsing rules.
This emulates the behavior of the Windows command prompt. For more information,
see Microsoft's documentation about command line argument parsing. At the time
of writing, this documentation was available at
http://msdn.microsoft.com/en-us/library/17w5ykft.aspx.
On Linux/Solaris, a tilde (~) expands the same way as the shell if you are running
csh. However, other shell processing, such as wildcard expansion and pipes, is not
performed.
Continue Commands
The commands in this section allow you to continue a stopped process.
Note
Only breakpoints that stop program execution are counted. A conditional
breakpoint whose condition is false or a breakpoint whose commands
resume a process are not counted.
You can view the continue_count by using the CONTINUECOUNT system variable.
See “System Variables” in Chapter 14, “Using Expressions, Variables, and Function
Calls” in the MULTI: Debugging book.
Note
In MULTI 4.x, if you wanted to debug your program from its start address
(typically _start), you had to set a breakpoint at the start address and
continue to it, even after using the load command to load your program.
In MULTI 5.x and later, you can use load or prepare_target -load to
debug your program from its start address. If you have already executed
load or prepare_target -load, the continue commands will not hit a
breakpoint set at the program start address. See “load” on page 245 and
“prepare_target” on page 247.
The following list provides a brief description of each continue command. For a
command's arguments and for more information, see the page referenced.
bc
bc [@continue_count] [expr]
Corresponds to:
bcb
bcb [@continue_count] [expr]
Behaves like the bc command, except that no further commands will be processed
until the target halts or you interrupt this command with Esc (see “bc” on page 160).
For a discussion of command blocking, see “cb” on page 162.
bcbhardbrk
bcbhardbrk [read] [write] [execute] [mask=mask] [data=data_value
[dmask=data_mask]] [vm] [at] [--] expr [:size] [{commands}]
the halted process backward to the breakpoint, blocking further command processing
until the target halts or until you interrupt the command by pressing Esc (see “bcb”
on page 160).
bchardbrk
bchardbrk [read] [write] [execute] [mask=mask] [data=data_value
[dmask=data_mask]] [vm] [at] [--] expr [:size] [{commands}]
c
c [@continue_count] [expr]
Corresponds to:
cb
cb [@continue_count] [expr]
Behaves like the c command, except that no further commands will be processed
until your process has stopped again. Signals for cb are handled as they are for c.
See “c” on page 161.
Some commands, such as data printing and viewing commands, only work correctly
when your process is stopped. When these commands appear in a script that controls
your process, it is important to ensure that your process has stopped before executing
these commands. Using the cb command makes sure your process stops running
before further script commands are executed. Your process will stop running once
it has done one of the following:
• Run to completion.
• Hit a breakpoint.
• Stopped with an exception, signal, segmentation violation, bus error, or similar
cause.
cbhardbrk
cbhardbrk [read] [write] [execute] [mask=mask] [data=data_value
[dmask=data_mask]] [vm] [at] [--] expr [:size] [{commands}]
Sets a temporary hardware breakpoint at the location specified by expr, and then
executes the cb command, which runs the halted process forward to the breakpoint,
blocking further command processing until the process halts or until you interrupt
the command by pressing Esc (see “cb” on page 162).
cf
cf address_expression
The following example installs a breakpoint on line 12 of function foo. When the
process hits the breakpoint, it will continue from line 14 of function foo, effectively
skipping lines 12 and 13 of function foo.
> b foo#12 { cf foo#14; }
The following example installs a breakpoint at label bar of function foo. When
the process hits the breakpoint, it will continue from the exit point of the function,
effectively skipping the rest of the function and returning immediately.
> b foo##bar { cf ($retadr()) }
cfb
cfb address_expression
Behaves like the cf command, except that no further commands will be processed
until your process has stopped again (see “cf” on page 163). For a discussion of
command blocking, see “cb” on page 162.
chardbrk
chardbrk [read] [write] [execute] [mask=mask] [data=data_value
[dmask=data_mask]] [vm] [at] [--] expr [:size] [{commands}]
Sets a temporary hardware breakpoint at the location specified by expr, and then
executes the c command, which runs the halted process forward to the breakpoint
(see “c” on page 161).
runbacktohardbrk
runbacktohardbrk [read] [write] [execute] [mask=mask] [data=data_value
[dmask=data_mask]] [vm] [at] [--] expr [:size] [{commands}]
runtohardbrk
runtohardbrk [read] [write] [execute] [mask=mask] [data=data_value
[dmask=data_mask]] [vm] [at] [--] expr [:size] [{commands}]
Sets a temporary hardware breakpoint at the location specified by expr, and then
executes the c command, which runs the halted process forward to the breakpoint.
See “c” on page 161.
The runtohardbrk command functions just like the chardbrk command except
that the temporary breakpoint set by runtohardbrk is automatically removed the
next time any task on the target halts, regardless of whether the breakpoint was hit,
whereas the temporary breakpoint set by chardbrk is automatically removed only
when it is hit. See “chardbrk” on page 164.
runtohere
runtohere
This command sets a temporary breakpoint on the current line or current address,
and then executes the c command (see “c” on page 161). The temporary breakpoint
is automatically removed the next time any task on the target halts, regardless of
whether the breakpoint was hit.
Halt Commands
The commands in this section allow you to halt the process being debugged.
The following list provides a brief description of each halt command. For a
command's arguments and for more information, see the page referenced.
H
H
halt
halt [{commands}]
Halts the current process. The process halts without sending an interrupt, allowing
you to cleanly continue the process later.
Corresponds to:
k
k [force]
Kills the current process. Specifying force kills the process without prompting
you first.
Run Commands
The commands in this section allow you to run the program being debugged.
The following list provides a brief description of each run command. For a
command's arguments and for more information, see the page referenced.
• r — Runs a new target program and passes the specified arguments to the
program in a space-separated list (see “r” on page 167).
• R — Runs a new target process with no arguments (see “R” on page 168).
• rb, Rb — Runs or restarts the program (see “rb, Rb” on page 168).
• restart — Restarts program execution or resets aspects of program and
target (see “restart” on page 169).
• resume — Resumes program execution after all other commands in a breakpoint
command list have been issued (see “resume” on page 170).
• rundir — Changes the directory or prints the current run directory (see “rundir”
on page 170).
• runtask — Starts a task running on a VxWorks target (see “runtask”
on page 171).
r
r [arguments]
If no arguments are specified, the ones from the previous run are used. If no previous
run exists, no arguments are used.
Arguments may contain <, >, or >> to redirect standard input (stdin) and standard
output (stdout). Text between quotation marks, either single (' ') or double ("
"), is treated as a single argument. The quotation marks are removed and are not
sent to the program. Arguments containing the MULTI command syntax comment
delimiter (//) must be enclosed in quotation marks (for example, r
-perform_url_operation "http://www.example.com").
On Windows, this command uses Windows command line argument parsing rules.
This emulates the behavior of the Windows command prompt. For more information,
see Microsoft's documentation about command line argument parsing. At the time
of writing, this documentation was available at
http://msdn.microsoft.com/en-us/library/17w5ykft.aspx.
On Linux/Solaris, a tilde (~) expands the same way as if you had entered it into the
csh shell. However, other shell processing, such as wildcard expansion and pipes,
is not performed.
See also “setargs” on page 157, “restart” on page 169, and “R” on page 168.
R
R
Runs a new target process with no arguments. If the process already exists, it will
be killed and restarted.
rb, Rb
rb [arguments]
Rb
Runs or restarts the program. These commands behave like the r and R commands
except that no further commands will be processed until the process terminates, hits
a breakpoint, or stops in any other way (see “r” on page 167 and “R” on page 168).
While the command line input is blocked, you can still perform all interactive
operations appropriate to a process, such as pressing the Halt button.
This command is useful for writing scripts that control execution of a process
running on the target, since you often want to perform the next command only after
the process stops.
The Rb command behaves like rb, except that it runs the program without
arguments.
See also “cb” on page 162, “r” on page 167, and “R” on page 168.
restart
restart
Corresponds to:
resume
resume [address_expression]
(This command is only valid within a breakpoint command list. See “Using
Command Lists in Debugger Commands” on page 12.)
For example, to skip over line 5 in your program, you could use the following
command, which makes the process stop at line 5 and then resume execution at line
6:
> b 5 {resume 6}
resume will continue the process in the same manner that the breakpoint was
encountered. For example, if the Debugger was performing a c (continue) command
when the breakpoint was encountered, the c command will be resumed. If the
Debugger was performing an S (single-step) command and the step completed when
the breakpoint was encountered, the process stops.
rundir
rundir [dir | -clear]
• dir — Changes the directory in which the process runs to dir. The run
directory setting is saved between sessions.
For embedded processes that use host I/O, dir becomes the directory that
MULTI uses to perform host I/O operations. Processes that have already started
running when the rundir command is issued are not affected by the new host
I/O directory setting.
For information about the GUI equivalent of the rundir dir command, see the
description of the Start in field in “The Arguments Dialog Box” in Appendix
A, “Debugger GUI Reference” in the MULTI: Debugging book.
• -clear — Removes any saved run directory setting and changes the run
directory back to the default directory. The default directory is MULTI's current
working directory, which you can display with the pwd command. See “pwd”
on page 116.
If you do not specify an argument, this command prints the current run directory.
runtask
runtask func [args]
During C++ debugging, func may be the member function of a global object,
specified as object.function. If the requested function is ambiguous, MULTI
will open a dialog box showing all the options so you can choose the correct one.
Signal Commands
The commands in this section are only applicable to Linux/Solaris targets.
The following list provides a brief description of each signal command. For a
command's arguments and for more information, see the page referenced.
• signal — Sends the given signal to the specified process or to the current
process (see “signal” on page 172).
• zignal — Sets up the signal handling table (see “zignal” on page 172).
signal
signal signal [pr=num]
Sends the signal signal to the process specified by slot number num, or to the
current process if num is not specified.
Note
Sending a fatal signal (for example, SIGKILL) to a stopped process may
have unpredictable results.
zignal
zignal signal [s] [i] [r] [b] [C] [Q]
Sets up the signal handling table. To list the current signal settings, use the l z
command (see “l” on page 111).
• s — Toggles stop. If stop is on, the process stops when the signal occurs.
• i — Toggles ignore. If ignore is on, the Debugger does not send the signal
to the process.
For example, if the default state is do not stop, do not ignore, do not report, and no
bell, the command zignal 14 sr sets the alarm clock signal to stop, do not ignore,
report, and no bell. Running zignal 14 sr again toggles these flags back to the
previous state. Running zignal 14 Csb, in any signal state, will set the alarm
clock signal to stop, do not ignore, beep, and do not report.
Modifying the state of the “breakpoint” signal (usually SIGTRAP) is not supported.
Single-Stepping Commands
The commands in this section allow you to single-step through your program. The
commands differ in whether they allow you to step into or step over function calls
and whether they advance by a single machine instruction or a single source line,
as shown in the table below.
The single-stepping commands listed in the preceding table accept the following
optional parameters:
Tip
If you inadvertently step into a function (with an s, si, or sl command),
you can issue the cU command (see “cu, cU” on page 176), click the
button, or press F9 to return from the function.
Note
The Debugger steps by source line without regard to asynchronous
changes to control flow that may occur in your program, such as those
caused by signals (in the C/POSIX environment) or Interrupt Activities
(in the INTEGRITY environment). If your step is stopped by a signal or
Interrupt Activity, you can issue the cU command, click the button,
or press F9 as necessary to return from the invocation of the signal handler
or Interrupt Activity handler.
• bcU — Steps backward, up to the caller of the current function (see “bcU”
on page 175).
• bprev — Steps backward one source line, stepping over function calls (see
“bprev” on page 176).
bcU
bcU
Steps backward, up to the caller of the current function. This command stops on
the call instruction that called the current function; this may be in the middle of a
source line. This behavior mirrors that of the cU command (see “cu, cU”
on page 176).
Corresponds to:
bprev
bprev
Corresponds to:
bs
bs
Steps backward one source line, stepping into function calls. In assembly-only mode
or interlaced assembly mode, this command will step one machine instruction instead
of one source line. To step backward one machine instruction unconditionally, use
the bsi command instead (see “bsi” on page 176).
Corresponds to:
bsi
bsi
Steps backward one machine instruction. For source-level stepping, use the bs
command (see “bs” on page 176).
cu, cU
cu [address_expression]
cU [address_expression]
With no argument, steps up to the caller of the current function. This command
stops on the instruction that the current function returns to; this may be in the middle
The cu command sets a permanent breakpoint at the return site of the currently
executing function. The cU command sets a temporary breakpoint at the return site
of the currently executing function. The cu and cU commands handle signals like
the c command. See “c” on page 161.
The cu and cU commands rely on the Debugger's ability to generate a partial stack
trace. They may not work correctly (for example, they may set a breakpoint at the
wrong address) if the stack trace obtained by the Debugger is incorrect. For
restrictions on tracing the call stack, see “Viewing Call Stacks” in Chapter 18,
“Using Other View Windows” in the MULTI: Debugging book.
cU corresponds to:
s
s [num] [ n | b ]
Single-steps one source line, stepping into any function calls. The options num, n,
and b behave as specified in “Single-Stepping Commands” on page 173.
Corresponds to:
S, n
S [num] [ n | b ]
n [num] [ n | b ]
Single-steps one source line, stepping over function calls instead of into functions.
The options num, n, and b behave as specified in “Single-Stepping Commands”
on page 173.
Corresponds to:
si
si [num] [ n | b ]
Single-steps one machine instruction, stepping into function calls. The options num,
n, and b behave as specified in “Single-Stepping Commands” on page 173.
This command behaves like the s command (see “s” on page 177), except that the
si command causes the process to advance by one machine instruction instead of
Si, ni
Si [num] [ n | b ]
ni [num] [ n | b ]
Single-steps one machine instruction, stepping over function calls. The options num,
n, and b behave as specified in “Single-Stepping Commands” on page 173.
These commands behave like the S and n commands (see “S, n” on page 178), except
that the Si and ni commands cause the process to advance by one machine instruction
instead of one high-level source line, and the stop position is displayed as a
disassembled instruction.
sl
sl [num] [ n | b ]
Single-steps one source line (even if you are viewing your code in interlaced
assembly mode), stepping into function calls. The options num, n, and b behave as
specified in “Single-Stepping Commands” on page 173.
Sl, nl
Sl [num] [ n | b ]
nl [num] [ n | b ]
Single-steps one source line (even if you are viewing your code in interlaced
assembly mode), stepping over function calls. The options num, n, and b behave as
specified in “Single-Stepping Commands” on page 173.
stepinto
stepinto expr
Sets a temporary breakpoint in the supplied function and steps once. This command
is useful in situations where there are a number of functions on a single line but
you are interested in stepping into only one of them. The breakpoint used is a special
type of breakpoint that will only trigger one stack level below the current stack
level. This command performs the same action as the Step Into This Function
right-click menu option.
taskaction
taskaction -r|-h|-s [-addressSpace address_space_name] [-taskname] task_name1
[,task_name2]... | [-taskid] task_id1 [,task_id2]...
Performs an operation on the run-mode task(s) specified by task name or task ID.
Possible operations are:
Register Command
Reference
Contents
Register Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Chapter 14. Register Command Reference
The commands in this chapter allow you to modify register definitions while
debugging a program; open windows for viewing registers; and add, remove, load,
and save registers. For more information about working with registers, see Chapter
13, “Using the Register Explorer” in the MULTI: Debugging book.
Note
Any modifications to the register descriptions made from the command
line are active only until you reload the program or connect to a different
target. For persistent modifications, you must customize the default
register description files. See “Customizing Default Register Definition
Files” in Chapter 13, “Using the Register Explorer” in MULTI:
Debugging.
Register Commands
The following list provides a brief description of each register command. For a
command's arguments and for more information, see the page referenced.
regadd
regadd name address [size_in_bytes [memory_space]]
Dynamically adds a memory-mapped register in the current context and opens the
Register Setup dialog box, which allows you to specify additional information
about the register. See “The Register Setup Dialog” in Chapter 13, “Using the
Register Explorer” in the MULTI: Debugging book.
regappend
regappend filename
Loads the register description file specified by filename, and applies the
modifications to the registers defined in the Debugger. If you do not provide an
absolute path to filename, MULTI searches the following directories in the order
listed:
By storing frequently used register additions and modifications in a file, you can
use regappend to quickly insert them into your Debugger.
regbasefile
regbasefile
Prints out the full path to the file that is used as the base for the register descriptions
of the active Debugger. This is the full path to the root GRD file—the file that was
automatically loaded by MULTI or the file from the most recent regload command
(see “regload” on page 186).
regload
regload [filename]
GUI only
Removes all of the registers that are currently defined in the Debugger and creates
a new set of registers from the register definition file filename. If you do not
provide an absolute path to filename, MULTI performs an ordered search of the
directories listed in “regappend” on page 185. If no filename is specified, the default
register definition files are reloaded.
We recommend that you use the regappend command (see “regappend” on page 185)
unless the file you are loading contains one of the default register description files
via a %include directive, or describes all of the registers you want to use.
regtab
regtab [-norefresh] operation tab
GUI only
Modifies the configuration of the specified tab on all open Register View windows,
where:
is useful for avoiding screen flicker when issuing multiple consecutive regtab
commands in scripts or loops on the command line.
• operation — Specifies the configuration modification to be performed on
the tab specified by tab. One of the operations listed below must be specified.
○ -show group — Shows the group or register identified by the
dot-separated path group.
○ -hide group — Hides the group or register identified by the
dot-separated path group.
○ -reroot group — Re-roots the tab at the group specified by the
dot-separated path group.
○ -unroot — Unroots the tab.
○ -insert — Adds a new tab named tab.
○ -remove — Deletes the specified tab.
○ -promote — Moves the tab one to the left in the tab ordering.
○ -demote — Moves the tab one to the right in the tab ordering.
○ -activate — Makes the specified tab the active tab.
The group argument required by some of the above options indicates the group
or register to use in the operation, and is a path that lists the name of the item
to be used, preceded by the names of all of its parent groups. For example, to
specify a register named f0 that is contained within a 64-bit subgroup of the
Floating Point Registers group, the dot-separated group path would
be:
Quotation marks are not required around the group path even if the path contains
spaces.
• tab — Specifies the tab to be modified and must be the last argument for every
regtab command. The tab name must contain only alphanumeric characters
and underscores and does not require quotation marks.
This command only changes the appearance of open Register View windows. It
has no effect if no Register View windows are open in the current Debugger.
regunload
regunload filename
Removes all of the registers that are defined in the file filename, which has been
incrementally loaded using the regappend command (see “regappend” on page 185)
or the File → Load Register Definitions from File menu option in the Register
View window.
regvalload
regvalload [filename]
For information about the simple syntax of register value files, examine a saved
register file (see “regvalsave” on page 188).
regvalsave
regvalsave [-all|-tab|-selected] [-nomemmapped] [filename]
• -all — Saves values for all registers in the Debugger. This is the default
behavior.
• -tab — Saves values for all registers visible in the current tab of the Register
View window. (See “The Register View Window” in Chapter 13, “Using the
Register Explorer” in the MULTI: Debugging book.)
• -selected — Saves values for all selected registers in the current tab of the
Register View window.
• -nomemmapped — Prevents memory-mapped registers from being saved. This
option qualifies the behavior of -all, -tab, and -selected.
• filename — Specifies the .grv file in which to save the register values. If no
filename is specified, a file chooser prompts you to select a .grv file.
regview
regview [register_name]
GUI only
Opens a Register View window displaying all of the registers, or opens a Register
Information window displaying the specified register. The leading $ in register
name will be omitted. See “The Register View Window” in Chapter 13, “Using the
Register Explorer” in the MULTI: Debugging book.
Corresponds to:
Scripting Command
Reference
Contents
Command Manipulation and Debugger Macro Commands . . . . . . . . . . . . . . . 192
Conditional Program Execution Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Dialog Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
External Tool Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
History Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Hook Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
MULTI-Python Script Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Object Structure Awareness (OSA) Commands . . . . . . . . . . . . . . . . . . . . . . . . 217
Record and Playback Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Chapter 15. Scripting Command Reference
The commands in this chapter are particularly useful within scripts. See also Chapter
1, “Using MULTI Scripts” in the MULTI: Scripting book.
The following list provides a brief description of each command manipulation and
Debugger macro command. For a command's arguments and for more information,
see the page referenced.
alias
alias [string1 [string2]]
• If no strings are specified as arguments, the alias command lists all aliases.
• If only one string argument is specified, the alias command lists the alias
(that is, the value that is substituted for the string by the alias), if any exists.
• If two strings are specified, the alias command translates string1, when
encountered as the first word in a command, into string2. Substitution is
only performed once, so references to other aliases are ignored. For example,
if you enter:
> alias sh showdef
you will be able to type sh instead of showdef to use the showdef command.
string1 must follow the rules of C/C++ identifiers. It may not be quoted, may not
contain spaces, and must begin with a letter or underscore.
cedit
cedit command
GUI only
Executes the command specified as its argument and places the command output
in an Editor window. This is useful for examining the output of commands that
print large amounts of information.
define
define name( [arguments]) { body }
name is the name of the Debugger macro followed by a set of arguments to pass to
the macro.
The body of the macro is a command list that can contain if statements and loops.
See “Using Command Lists in Debugger Commands” on page 12, and see the
descriptions of the if, do, for, and while commands in “Conditional Program
Execution Commands” on page 198.
Debugger macros can also return a value by using the return command in the body.
See “return” on page 195.
For more information about this command, see “Debugger Macros” in Chapter 14,
“Using Expressions, Variables, and Function Calls” in MULTI: Debugging.
macrotrace
macrotrace
Prints the stack of all presently executing Debugger macro commands. For example,
with the following Debugger macros:
> define mac1() {return mac2();}
> define mac2() {return mac3();}
> define mac3() {macrotrace; return 42;}
return
return [expr]
Returns from the currently executing Debugger macro, evaluating expr, if specified,
and returning it as the macro value.
This command is only valid in Debugger macros (see “define” on page 194). When
a Debugger macro is running and the return command is issued, the macro stops
and exits. If an expression expr is specified, it is evaluated and returned as the
macro's value.
route
route destination_component command
Routes the specified command to the specified destination component. Note that
destination_component overrides the selection in the target list, causing
command to always execute on destination_component and never on the
currently selected target list entry.
The component may be fully specified, or just the unique portion of the component
name may be used. For example, debugger.pid.543 and pid.543 are equivalent
as long as the latter is unique. If a match is not unique, a list of matching components
is printed out.
To list components and their aliases, use the components command (see
“components” on page 106).
To create a new alias for a new component, use the new command (see “new”
on page 26).
sc
sc [ "command" | <filename ]
Performs syntax checking on either a single command or an entire script file and
all nested script files. See “Syntax Checking” in Chapter 14, “Using Expressions,
Variables, and Function Calls” in the MULTI: Debugging book.
The filename will be searched for using the default search path. See “Default Search
Path for Files Specified in Commands” on page 14.
shell
shell [ -wait | -w ] [-noconsole] commands
Before being passed to the shell, the command string following shell is processed
and all instances of the escape sequence %EVAL{multi_commands} are replaced
by the result of evaluating multi_commands. This is useful for constructing
dynamic arguments (that is, arguments that vary depending on your current
debugging context) to shell tools. For example, to run a tool on the current file,
construct a command of the form:
> shell toolname constant_args %EVAL{$_FILE}
substitute
substitute cmd_string
You can use more than one %EVAL sequence. After all sequences have been replaced
with the output of the respective expressions or commands, the Debugger executes
the resulting cmd_string.
As an example use of this command, suppose you want to use a graphical file
chooser to specify the path to a file you are going to edit. You could enter:
> substitute edit "%EVAL{filedialog}"
In the above example, the Debugger command filedialog returns a chosen file path,
but it will not be quoted. In order to handle the case where the chosen file path
contains spaces, a pair of quotation marks is placed around the %EVAL sequence in
the example.
Note
The implicitEvalEcho configuration option may have an effect on the
expected output of this command. If this option is set to off, the values
of expressions are not echoed, preventing expressions contained in
commands from being evaluated or subsequently substituted in
cmd_string. In this case, be sure to use the mprintf command to force
unalias
unalias string
> unalias sh
Composite commands for conditional program execution follow the same syntax
rules as all MULTI Debugger commands. For information that may be helpful when
entering conditional program execution commands, see “Using Command Lists in
Debugger Commands” on page 12, “Continuing Commands onto Subsequent Lines”
on page 13, and “Terminating Commands” on page 14.
The following list provides a brief description of each conditional program execution
command. For a command's arguments and for more information, see the page
referenced.
• break — Breaks out of a loop created with the Debugger do, for, or while
command (see “break” on page 199).
• continue — Causes the current iteration of a loop created with the Debugger
do, for, or while command to terminate and the next iteration to begin (see
“continue” on page 199).
• do — Executes the specified command list at least once, and then for as long
as the specified expression evaluates to a nonzero value (see “do” on page 200).
• for — Executes init-expr once, then executes the specified command list
and the increment inc-expr for as long as the specified expression evaluates
to a nonzero value (see “for” on page 200).
• if — Specifies conditional command execution (see “if” on page 201).
• while — Executes the specified command list for as long as the specified
expression evaluates to a nonzero value (see “while” on page 202).
break
break [ -fail | -succeed ]
Breaks out of a loop created with the Debugger do, for, or while command, where:
See also “do” on page 200, “for” on page 200, and “while” on page 202.
continue
continue
Causes the current iteration of a loop created with the Debugger do, for, or while
command to terminate and the next iteration to begin. For the do and while
commands, this means the condition is tested; for the for command, the increment
is executed. This is similar to the continue statement in C. See “do” on page 200,
“for” on page 200, and “while” on page 202.
do
do {commands} while ( expr )
Executes the command list commands at least once, and then as long as expr (an
expression in the current language) evaluates to a nonzero value. For example:
> do {
continued> mprintf("%d\n", $i);
continued> $i++;
continued> } while ($i<20)
In this case, the value of ($i) will always be printed at least once, regardless of its
initial value. This is similar to the do statement in C. See “Using Command Lists
in Debugger Commands” on page 12.
for
for ( [init-expr] ; [cond] ; [inc-expr] ) {commands}
Executes init-expr once, then executes the command list commands and the
increment inc-expr as long as cond (an expression in the current language)
evaluates to a nonzero value.
For example:
> for ($i=0; $i<20; ++$i) {
continued> if($i%2==0) {
continued> print "even";
continued> } else {
continued> print "odd";
continued> }
continued> }
In this case, the variable ($i) is initialized to 0, and the body of the loop is then
executed twenty times. See “Using Command Lists in Debugger Commands”
on page 12.
if
if ( expr ) {commands} [else if ( expr ) {commands}]... [else {commands}]
while
while ( expr ) {commands}
Executes the command list commands as long as expr (an expression in the current
language) evaluates to a nonzero value. For example:
> while ($i<20) {
continued> $j+=$i;
continued> if ($j>50) {
continued> $j=50;
continued> break;
continued> };
continued> $i++;
continued> }
In this case, if ($j>50) is true, the loop will terminate regardless of the value of
($i). This is similar to the while statement in C. See “Using Command Lists in
Debugger Commands” on page 12.
Dialog Commands
The commands in this section allow you to open dialog boxes.
The following list provides a brief description of each dialog command. For a
command's arguments and for more information, see the page referenced.
alertdialog
alertdialog string
GUI only
Displays a dialog box containing string. The Debugger blocks further input until
you dismiss this dialog box. This command is useful inside a MULTI script for
displaying a message. For information about displaying other dialog boxes, see
“dialog” on page 203.
dialog
dialog name [arguments]
GUI only
Opens the predefined dialog box named name and takes arguments arguments if
the dialog box permits them. To display a list of the currently defined dialog boxes,
use the l D (lowercase L, uppercase D) command (see “l” on page 111).
At present, the only supported dialog box is named textinput. The textinput
dialog box displays a prompt and a text field for the user to enter a string. Invoking
this dialog box requires two arguments: the first is used as the prompt in the dialog
box and the second specifies the MULTI command that is run on the string entered
by the user.
The textinput dialog box is useful if you would like a custom menu item to run
a MULTI command that takes a user-specified argument. For example, suppose
that when a custom menu item is selected, you would like a dialog box to prompt
the user for the name of a function. Suppose further that the e command should be
run on the function, displaying the location in source where the function is defined
(see “e” on page 143). You might specify that the following command is executed
when the menu item is selected:
> dialog textinput "Go to the definition of function:" e
directorydialog
directorydialog [window_title]
GUI only
Opens a directory chooser and returns the name of the directory that is selected
from the chooser. By default, the title of the window is Choose Directory, but you
may change it with the window_title parameter. This command is useful for
interacting with a user while you are running scripts or evaluating preprocessor
macros. See also “filedialog” on page 204.
filedialog
filedialog [button_label window_title [-defaultdir dir_name] [-preset preset_name]
[-filetypes file_type [file_type]...]]
GUI only
Opens a file chooser and returns the name of the file that is selected from the chooser.
This command is useful for interacting with a user while you are running scripts or
evaluating preprocessor macros. See also “directorydialog” on page 204.
By default, the dialog box's button is labeled Select and the title of the window is
Choose File. You may change these with the button_label and window_title
parameters.
The -defaultdir option specifies that the file chooser displays the dir_name
directory, where dir_name is the directory you specify. If you do not specify the
-defaultdir option, the file chooser displays the directory of the last file selected
from a Debugger file chooser.
The -preset option specifies that the file chooser displays all the file types
associated with preset_name in its file type drop-down list. Some common
preset_names and their corresponding file types are:
• Debugger — Lists All Files, Executable, and Shared Libraries in the file
type drop-down list.
The -filetypes option adds individual file types to the preset. If file_type
contains a space, enclose it in quotation marks. If you specify more than one
file_type, separate each with a space. Some common file_types and their
corresponding file types are:
• All Files — Lists All Files (*) in the file type drop-down list.
• Assembly Source — Lists Assembly Source (*.s, *.asm, *.si, *.86, *.arm,
*.thm, *.68, *.cf, *.mip, *.ppc, *.sh, *.800, *.850, *.830, *.810, *.bf) in the
file type drop-down list.
• C Source — Lists C Source (*.c, *.h) in the file type drop-down list.
• C++ Source — Lists C++ Source (*.cc, *.cxx, *.cpp, *.cp, *.c++, *.C, *.h,
*.hh, *.H, *.h++, *.hxx, *.hpp) in the file type drop-down list.
• Libraries — Lists Archive (*.a, *.lib, *.olb, *.a88) in the file type drop-down
list.
For more information about preset options and file types, refer to Part II,
“Configuring the MULTI IDE” in the MULTI: Managing Projects and Configuring
the IDE book.
The following list provides a brief description of each external tool command. For
a command's arguments and for more information, see the page referenced.
• make — Executes the system command make to build a target (see “make”
on page 206).
• socket — Starts a socket server, or closes a socket connection (see “socket”
on page 206).
evaltosocket
evaltosocket commands
Sends the output of commands, which may consist of one or more commands, to
any socket connections on the server(s) started by the:
make
make [make_target]
Executes the system command make to build the target make_target. If you do
not specify a target, the name of the executable you are debugging is used. The
output of make appears in an Editor window.
socket
socket [-private_output] [-global] port_number | auto
socket -close_this
The first format of this command starts a socket server, which allows an external
process to send commands to the Debugger and receive output from the Debugger.
For example, if you started MULTI on a machine named myhost and issued the
command socket 40000, you could run the command telnet myhost 40000
to connect a telnet window to the Debugger. From the telnet window, you could
enter commands that would be executed in the Debugger and receive output from
the Debugger. You are not limited to using telnet; you can run any program that
connects to your host via the specified port and interacts with the Debugger.
The second format of this command closes a socket connection to the socket server.
When -global is not specified, the socket server is only associated with the
Debugger component that created it, so output from that Debugger component
is sent to the socket connections of the socket server.
Tip
The MULTI command line option -socket starts a global socket
server when the Debugger opens. For more information about this
option, see Appendix C, “Command Line Reference” in the MULTI:
Debugging book.
History Commands
The commands in this section deal with commands kept in the Debugger history.
The Debugger maintains a history of the most recent commands entered in the
command pane. The number of commands remembered defaults to 256, but can be
set with the history configuration option (for more information, see “Other Debugger
Configuration Options” in Chapter 8, “Configuration Options” in the MULTI:
Managing Projects and Configuring the IDE book).
Tip
For a description of keyboard shortcuts that allow you to auto-complete
commands based on your command history, display the last command
in your command history, etc., see also “Command Pane Shortcuts” in
Appendix B, “Keyboard Shortcut Reference” in the MULTI: Debugging
book.
The following list provides a brief description of each history command. For a
command's arguments and for more information, see the page referenced.
!
! [string] [args]
! [num] [args]
Re-executes the most recent command beginning with string, or re-executes the
command numbered num. Do not put a space between ! and string or between !
and num. If you include a space, the entire string after ! is treated as args. If
specified, args are appended as arguments to the command.
!!
!! [args]
You can add additional arguments (args) to the end of the command. For example,
if the most recent command was
echo hi
will be executed.
The space between !! and args is required. If you do not include a space, args
are ignored.
backhistory
backhistory
GUI only
Gives the previous command in the command pane history list. This command is
intended to be bound to a key (see “Customizing Keys with the keybind Command”
in Chapter 7, “Configuring and Customizing MULTI” in the MULTI: Managing
Projects and Configuring the IDE book). By default, the Debugger binds the
UpArrow key to this command.
forwardhistory
forwardhistory
GUI only
Gives the next command in the command pane history list. This command is intended
to be bound to a key (see “Customizing Keys with the keybind Command” in
Chapter 7, “Configuring and Customizing MULTI” in the MULTI: Managing
Projects and Configuring the IDE book). By default, the Debugger binds the
DownArrow key to this command.
h
h [ clear | num ]
Hook Commands
The commands in this section allow you to add hooks to Debugger actions, remove
hooks, and list hooks.
The following list provides a brief description of each hook command. For a
command's arguments and for more information, see the page referenced.
addhook
addhook [-order number] [ -board | -core number ] -before action {commands} |
-after action {commands}
Adds a hook to a Debugger action. You must be connected to a target before using
this command.
• -order number — Specifies the new hook's order in the sequence of hooks
that run for action. (When action occurs, the hooks for action run in order
from the hook with the smallest order number to the hook with the largest order
This option is useful for initializing registers in multi-core systems. When you
download a program to your target, hooks for cores other than the one to which
you are downloading are not run, but -board hooks are run.
clearhooks
clearhooks [-order number] [ -board | -core number ] [ -before action | -after action
]
Removes hooks. If no arguments are specified, this command removes all Debugger
hooks from your target. You must be connected to a target before using this
command.
• -order number — Removes the hook with the order number specified.
• -board — Removes -board hooks.
• -core number — Removes hooks for the CPU indicated by number.
• -before action — Removes hooks that run before action. Available
actions are:
○ reset
○ download
• -after action — Removes hooks that run after action. Available actions
are:
○ connect
○ download
○ reset
○ rominit
For example, to remove all hooks that run after reset, you can issue the following
command:
> clearhooks -after reset
To remove only those hooks that are explicitly bound to run on core 2 after
download, you can enter the following command:
> clearhooks -core 2 -after download
If you are not sure what hooks have already been added, it is a good idea to run the
clearhooks or listhooks command before adding a new set of hooks. See “listhooks”
on page 214.
listhooks
listhooks [-order number] [ -board | -core number ] [ -before action | -after action
]
Prints a list of current hooks to the Debugger's Cmd pane. The hooks are printed
in a manner suitable for passing them as arguments to the addhook command (see
“addhook” on page 211).
If no arguments are specified, this command prints all Debugger hooks on your
target. You must be connected to a target before using this command.
• -order number — Prints the hook with the order number specified.
• -board — Prints -board hooks.
• -core number — Prints hooks for the CPU indicated by number.
• -before action — Prints hooks that run before action. Available actions
are:
○ reset
○ download
• -after action — Prints hooks that run after action. Available actions are:
○ connect
○ download
○ reset
○ rominit
The following example uses the listhooks command for a Power Architecture target:
> clearhooks
> addhook -core 4 -after reset { target rw cpsr 0xd3 }
> addhook -core 4 -after reset { target rw control 0x1 }
> listhooks -after reset
-order 10 -after reset -core 4 { target rw cpsr 0xd3 }
-order 20 -after reset -core 4 { target rw control 0x1 }
If you are not sure what hooks have already been added, it is a good idea to run the
listhooks or clearhooks command before adding a new set of hooks. See
“clearhooks” on page 213.
python, py
python [ -b | -nb ] -s "Python_statements" | -f Python_script_name [args]
GUI only
Note
The python and py commands function identically.
For information about using Python scripts to run MULTI, see Chapter 2,
“Introduction to the MULTI-Python Integration” in the MULTI: Scripting book.
pywin
pywin [-close]
GUI only
Opens or closes the Py Window. For information about the Py Window, see
“MULTI-Python Interfaces” in Chapter 2, “Introduction to the MULTI-Python
Integration” in the MULTI: Scripting book.
The following list provides a brief description of each OSA command. For a
command's arguments and for more information, see the page referenced.
osacleanup
osacleanup [-disable]
GUI only
With no arguments, this command deletes OSA entries from the target list, closes
the OSA Explorer, and cleans up basic OSA information. The command operates
in the context of the selected target list entry. For example, if a freeze-mode
connection is selected in the target list, issuing osacleanup deletes freeze-mode
OSA tasks and closes the OSA Explorer that was launched in freeze mode. OSA
information in run mode is unaffected.
If you issue the command with no arguments, you are able to restart the OSA
package at any time.
If you specify -disable, this command removes OSA support for the program.
To restart the OSA package for the program, you must restart the program or
disconnect from the target and then reestablish the freeze-mode connection.
-disable is not supported with run-mode connections.
Windows that use the OSA package, such as the ThreadX Information window
and the multi-core Task Manager, do not automatically close when you issue this
command.
osacmd
osacmd "OSA_package_commands"
GUI only
Sends the quoted list of commands to the corresponding OSA package. The
Debugger treats the command list as a string. In other words, the command list is
not parsed by the Debugger but is sent as is to the OSA package.
osaexplorer
osaexplorer [-refresh]
GUI only
• -refresh — Refreshes the object list in the OSA Explorer. This option is
valid only in freeze-mode debugging. The -refresh option is not valid if
specified in conjunction with any other optional argument.
• -tabname object_name — Displays the tab object_name as the current
tab in the OSA Explorer. Each tab is named for a particular kind of object.
Available OSA Explorer tabs appear in the GUI.
• -tabidx tab_index — Displays the tab specified by tab_index as the
current tab. Tab indexing starts from zero (0). The left-most tab in the OSA
Explorer window has a tab_index of 0, the next tab a tab_index of 1, and
so on.
You can specify tab, reference, and row arguments together if they make sense in
the corresponding OSA Explorer. For example, if you are using an OSA Explorer
with the INTEGRITY operating system, you can enter:
> osaexplorer -tabname Task -mslrow 2 -refname "Other Activities"
to open an OSA Explorer that displays the Task tab, selects the third row in the
master pane (indexing starts from 0), and shows the task's Other Activities in the
reference pane.
_osaFillGuiWithObj
_osaFillGuiWithObj -Widget widget_name -ObjType object_type_name -ObjFld
fld1 [fld2]...
GUI only
Fills in a widget with OSA object attribute values. The widget must be a TextField,
PullDown, or MScrollList.
osainject
osainject -ObjType object_type_name -ObjID object_id [message_string]
GUI only
osasetup
osasetup osa_name [-cfg config_filename] [-lib module_name] [-log log_file]
GUI only
You may optionally include the full path to config_filename. If a full path
is not specified, MULTI searches for the configuration file in your personal
configuration directory first:
○ Windows 8/Windows 7/Vista — user_dir\AppData\Roaming\GHS
○ Windows XP — user_dir\Application Data\GHS
○ Linux/Solaris — user_dir/.ghs
and then looks for it in the MULTI IDE installation directory. For more
information, see “Freeze-Mode and OSA Configuration File” in “Freeze-Mode
Debugging and OS-Awareness” in the MULTI: Debugging book.
• -lib module_name — Specifies the package's shared library. If no library
is specified, MULTI uses osa_name.dll (Windows) or osa_name.so
(Linux/Solaris) as the library name.
You may optionally include the full path to module_name. If a full path is not
specified, MULTI searches for the shared library in the MULTI IDE installation
directory first, and if it does not find it, continues to search in a way defined
by the host machine.
• -log log_file — Specifies that the communication between MULTI and
the OSA package be logged to log_file.
osatask
osatask [-exec executable] [[-addressSpace name] -taskid task_id ]
GUI only
When run without any arguments, osatask opens the Debugger on the task that is
currently executing.
This command is only applicable when you are debugging an RTOS in freeze mode.
(See also “Freeze-Mode Debugging and OS-Awareness” in the MULTI: Debugging
book).
osatasklist
osatasklist [-all] [-attach]
GUI only
Prints a list of OSA tasks to the Debugger command pane and, if -attach is
specified, attaches to them as well. To operate on all OSA tasks, including hidden
tasks, specify -all.
osaview
osaview [-context]
GUI only
Opens the OSA Object Viewer. If you specify the -context option, the OSA
Object Viewer opens on information for the INTEGRITY object (AddressSpace or
Task, for example) currently displayed in the Debugger window. If you do not
specify an option to this command, it displays information for the entire INTEGRITY
target.
Note
This command is only supported if you are debugging a run-mode
connection and using INTEGRITY version 10 or later.
For information about the OSA Object Viewer, see “The OSA Object Viewer” in
“Run-Mode Debugging” in the MULTI: Debugging book.
taskwindow
taskwindow [-refresh]
GUI only
The Task Manager displays the tasks that are running on the (embedded,
multitasking) target. It contains columns of information about each of the tasks.
For more specific information, see “The Task Manager” in “Run-Mode Debugging”
in the MULTI: Debugging book.
Specify the -refresh option to refresh the existing Task Manager window.
This command can be used in freeze mode to launch the OSA Explorer, but this
usage is deprecated. Instead, use the osaexplorer command for that purpose (see
“osaexplorer” on page 219). For more information about object-aware and task-aware
debugging in freeze mode, see “Freeze-Mode Debugging and OS-Awareness” in
the MULTI: Debugging book.
Make sure to follow these guidelines when using record and playback commands
and record files:
• If you use the > file or >> file command when a recording file is already set,
the old recording file will be closed and all subsequent commands will be
recorded to the new file. See “>” on page 226 and “>>” on page 226.
• Scripts may include other scripts, to a maximum script depth of 500.
• The playback file should not contain any lines that begin with > or <. (Add a
space at the beginning of a line, if necessary).
• Standard language-style comments are supported in command playback files,
as in all Debugger input (see “Including Comments in Debugger Commands”
on page 13).
• You cannot play back from a file that is open for recording, or record to a file
that you are playing back.
• Some commands can cause errors that may abort playback. You can use the
Continue running script files on error GUI option (or the
continuePlaybackFileOnError configuration option) to prevent these
commands from stopping a playback. For more information about this option,
see “Debugger Configuration Options” in Chapter 8, “Configuration Options”
in the MULTI: Managing Projects and Configuring the IDE book.
You can use MULTI's -p, -r, -R, and -RO command line options to record
commands and/or output or to read from recorded files on startup. For a description
of these options, see Appendix C, “Command Line Reference” in the MULTI:
Debugging book.
The following list provides a brief description of each record and playback command.
For a command's arguments and for more information, see the page referenced.
• > — Controls or displays the status of command recording (see “>” on page 226).
• >> — Controls or displays the state of screen recording (recording commands
and their output) (see “>>” on page 226).
• < — Starts command playback from the specified file (see “<” on page 227).
>
> [ file | t | f | c ]
• file — Sets the command recording file to file and turns on command
recording. This option corresponds to: Config → State → Record Commands.
• t — Turns on command recording (to the current command recording file).
• f — Turns off command recording (but does not close or reset the command
recording file).
• c — Turns off command recording and closes the command recording file. (A
new recording file will need to be set before recording can be performed again.)
This option corresponds to Config → State → Stop Recording Commands.
If no argument is specified, the > command displays the current command recording
status.
>>
>> [ file | t | f | c ]
Controls or displays the state of screen recording (recording commands and their
output), where:
• file — Sets the screen output recording file to file and turns on screen
output recording. This option corresponds to Config → State → Record
Commands + Output.
• t — Turns on screen output recording (to the current screen output recording
file).
• f — Turns off screen output recording (but does not close or reset the screen
output recording file).
• c — Turns off screen output recording and closes the screen output recording
file. (A new recording file will need to be set before recording can be performed
If no argument is specified, the >> command displays the current screen output
recording status.
<
< file
The specified file will be searched for using the default search path unless the full
path has been specified (see “Default Search Path for Files Specified in Commands”
on page 14).
Contents
Search Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Chapter 16. Search Command Reference
The commands in this chapter allow you to search forward and backward in the
source pane or in a file, modify a search, or perform an incremental search.
Searches wrap around the beginning and end of files and obey the current case
sensitivity setting.
For information about navigating MULTI windows, see Chapter 11, “Navigation
Command Reference” on page 141.
Search Commands
The following list provides a brief description of each search command. For a
command's arguments and for more information, see the page referenced. (Note
that complete descriptions for some of these commands are located in other chapters.)
• / — Searches forward through the current file for the specified string (see “/”
on page 231).
• ? — Searches backward for the specified string (see “?” on page 231).
• bsearch — Searches backward in the source pane for the previous occurrence
of the specified string and highlights it (see “bsearch” on page 232).
• chgcase — Sets the case sensitivity of text searches (see “chgcase” on page 232).
• completeselection — Selects the smallest complete expression from the text
highlighted in the source pane (see “completeselection” on page 233).
• dialogsearch — Opens a search dialog box that allows you to search for text
or regular expressions in the Debugger's source pane (see “dialogsearch”
on page 233).
• fsearch — Searches forward in the source pane (after selected text) for the
next occurrence of the specified string, and highlights the string (see “fsearch”
on page 233).
• grep — Searches for the specified text in open files and, if debugging
information is available, in all of the files that make up a program (see “grep”
on page 234).
• isearch — Starts an incremental search in the window specified (see “isearch”
on page 235).
• isearchadd — Adds the specified text to the search string and continues an
incremental search in the specified window (see “isearchadd” on page 236).
• isearchreturn — Causes the Debugger to return to the location that was viewed
prior to the last isearch command (see “isearchreturn” on page 236).
• printsearch — Prints the search string or indicates that there is no search string
(see “printsearch” on page 237).
• showdef — Searches for a C preprocessor definition for each specified name
(see “showdef” on page 291 in Chapter 21, “View Command Reference”
on page 283).
/
/ [string]
In GUI mode, works in the same way as the fsearch command (see “fsearch”
on page 233).
In non-GUI mode, searches forward through the current file, from the line after the
current line, for string. Do not put a space between / and string.
causes the cursor to jump forward to the string extern. You can then find more
occurrences of this word by repeatedly issuing /, and then pressing Enter.
?
? [string]
In GUI mode, works in the same way as the bsearch command (see “bsearch”
on page 232).
In non-GUI mode, searches backward, from the line before the current line, for
string. Do not put a space between ? and string.
causes the cursor to jump backward to the string extern. You can then find more
occurrences of this string by repeatedly issuing ?, and then pressing Enter.
bsearch
bsearch string
GUI only
Searches backward in the source pane for the previous occurrence of string and
highlights it. If the search reaches the beginning of the file, MULTI beeps and then
resumes searching from the end.
If string is omitted, the string argument from the previous fsearch, bsearch,
or incremental search is used. See also “fsearch” on page 233 and “Incremental
Searching” in Chapter 9, “Navigating Windows and Viewing Information” in the
MULTI: Debugging book.
chgcase
chgcase [ 0 | 1 ]
Note
In case-insensitive mode, typing uppercase characters in a search string
temporarily changes the search mode to case-sensitive.
completeselection
completeselection
GUI only
Selects the smallest complete expression from the text highlighted in the source
pane. If there is no text selected (highlighted) in the source pane, this command
does nothing.
dialogsearch
dialogsearch
GUI only
Opens a search dialog box that allows you to search for text or regular expressions
in the Debugger's source pane. This dialog contains options for searching forward
and backward and for ignoring case.
For more detailed information about the search dialog box, see “The Source Pane
Search Dialog Box” in Appendix A, “Debugger GUI Reference” in the MULTI:
Debugging book.
fsearch
fsearch string
GUI only
Searches forward in the source pane (after selected text) for the next occurrence of
string, and highlights it. If string is not found before the end of the file, the
Debugger beeps and then resumes searching from the beginning of the file.
If string is omitted, the string argument used in the previous fsearch, bsearch,
or incremental search is used. See also “bsearch” on page 232 and “Incremental
Searching” in Chapter 9, “Navigating Windows and Viewing Information” in the
MULTI: Debugging book.
grep
grep [[-i] [-w] [ -F | -E ] text]
GUI only
Searches for text in open files and, if debugging information is available, in all of
the files that make up a program.
If no options are specified, this command opens the Search in Files dialog (see
“Viewing Search in Files Results” in Chapter 4, “Editing Files with the MULTI
Editor” in the MULTI: Managing Projects and Configuring the IDE book).
Alternatively, you can specify a text argument and search options from the
command line to achieve most of the same functionality as the Search in Files
dialog, where:
• text — Specifies the string to search for. text is treated as a basic regular
expression unless the -F or -E option is used.
• -i — Causes the grep command to perform a case-insensitive search. (Without
this option, grep performs a case-sensitive search.)
• -w — Causes the grep command to perform a whole word search. This means
that the matching string must be preceded by a non-word character and followed
by a non-word character, where word characters are letters, digits, and the
underscore. For example, if you specify this option, a search for ice does not
match slice or ice__, but it does match ice-9. (Without this option, grep
finds any matching text.)
• -F — Causes text to be treated as a fixed string.
• -E — Causes text to be treated as an extended regular expression. Extended
regular expressions allow you to use the special regular expression syntax
characters |, +, and ?, which do not normally have any special meaning to the
grep command.
Some search strings may be difficult to specify on the command line because the
Debugger may interpret escaped characters differently than expected (for example,
\"word, an escaped double quotation mark followed by the string word). If you
encounter such a problem, use the Search in Files dialog to specify your search
string and options.
The output from the grep command is displayed in the Search in Files Results
window (see “Viewing Search in Files Results” in Chapter 4, “Editing Files with
the MULTI Editor” in the MULTI: Managing Projects and Configuring the IDE
book).
This command works by running the BSD grep utility. A copy of BSD grep is
installed along with the MULTI IDE. However, BSD grep is not part of MULTI
and is not distributed under the same license as MULTI. For more information about
the license under which BSD grep is distributed, refer to the file bsdgrep.txt, which
is located in the copyright subdirectory of the IDE installation directory. For
information about the search expression format that BSD grep uses, refer to the
OpenBSD re_format(7) man page.
isearch
isearch [ + | - ] wid=num
GUI only
Starts an incremental search in the window specified by num, the window ID number.
If an incremental search is already active in that window, the current search string
is searched again. A plus sign (+) argument specifies a forward search, and a minus
sign (-) causes a backward search. If neither a plus or minus sign are specified, a
forward search is performed by default.
This command should not be used from the command pane. Instead, use the keybind
or mouse command to bind this command to a key or mouse press. For more
information about the keybind and mouse commands and window ID numbers,
see “Customizing Keys and Mouse Behavior” in Chapter 7, “Configuring and
Customizing MULTI” in the MULTI: Managing Projects and Configuring the IDE
book.
isearchadd
isearchadd wid=num text
GUI only
Adds text (no quotation marks) to the search string and continues an incremental
search in the window pointed to by num. The window must already be performing
an incremental search for this command to work.
This command should not be used from the command pane. Instead, use the keybind
or mouse command to bind this command to a key or mouse press. For more
information about the keybind and mouse commands and window ID numbers,
see “Customizing Keys and Mouse Behavior” in Chapter 7, “Configuring and
Customizing MULTI” in the MULTI: Managing Projects and Configuring the IDE
book.
isearchreturn
isearchreturn wid=num
GUI only
Causes the Debugger to return to the location (in the window specified by the
window ID number num) that was being viewed prior to the last isearch command.
This command is only meaningful after an isearch command has been issued (that
is, it is only meaningful if the window with the identification number num is
performing an incremental search).
This command should not be used from the command pane. Instead, use the keybind
or mouse command to bind this command to a key or mouse press. For information
about the keybind and mouse commands and window ID numbers, see “Customizing
Keys and Mouse Behavior” in Chapter 7, “Configuring and Customizing MULTI”
in the MULTI: Managing Projects and Configuring the IDE book.
printsearch
printsearch
If a search string exists, it is printed within square brackets, so the beginning and
ending whitespace can be seen. For example:
> printsearch
might print:
[ foo ]
meaning that the search string is the word foo preceded by one space and followed
by two spaces.
Contents
General Target Connection Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Serial Connection Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Chapter 17. Target Connection Command Reference
The following list provides a brief description of each general target connection
command. For a command's arguments and for more information, see the page
referenced.
• unload — Unloads a program from the target system's memory (see “unload”
on page 253).
change_binding
change_binding bind | unbind
connect
connect connection_method_name
connect -restart_runmode
connect
The first three formats of this command connect or reconnect to a target (a simulator,
emulator, monitor, or OS, for example). You must connect to a target before you
can perform certain MULTI Debugger operations.
The fourth format of the command starts or stops the logging of transactions between
MULTI and the debug server.
The fifth format of the command opens the Connection Chooser, which allows
you to create, edit, or choose a Connection Method to connect to your target. See
“Creating a Standard Connection Using the Connection Chooser” in Chapter 3,
“Connecting to Your Target” in MULTI: Debugging.
Arguments for the second format of this command, which is equivalent to creating
a Custom Connection Method in the Connection Chooser, are:
The setup= option can be used to specify .mbs, .py, and .gpy setup scripts.
For more information about setup scripts, see Chapter 6, “Configuring Your
Target Hardware” in the MULTI: Debugging book.
• setupargs=script_arguments — Specifies one or more script arguments
to the target setup script filename (above). If script_arguments contains
spaces, enclose the argument string in double quotation marks ("string with
spaces").
At present, only .py and .gpy Python setup scripts can accept arguments.
• log[=filename] — Specifies that transactions between MULTI and the
debug server should be logged and sent to standard error or, if specified, to the
file filename.
• -temp — Prevents the connection from being saved across sessions.
• debug_server — Specifies the debug server to use to connect to the target.
A debug server is a program that controls the target device and must be designed
for the hardware debugging interface you are using (if any) and the target CPU
for which you are compiling your program.
If specified, the setup, setupargs, log, and -temp options must appear before
debug_server.
Note
If the string of arguments to the connect command follows the first or
second format of this command, MULTI first attempts to exactly match
the string to the name of a Connection Method. If MULTI does not find
an exact match, it interprets the string as the name of a target debug server
and as setup and debug server options (if specified).
Note
The Debugger ignores the deprecated mode argument in connections that
specify it. Even for connections that do not explicitly include this
argument, the Debugger may print a message stating that the mode
argument is deprecated. This occurs if the mode argument has been
associated with a MULTI 4 Connection Method whose name matches
the arguments of the connect command you entered. To remove the mode
argument from the Connection Method, edit and save the Connection
Method in MULTI 7. For more information, see “Updating MULTI 4
Target Connections” in Chapter 7, “Preparing Your Target” in the MULTI:
Debugging book.
Arguments for the third and fourth formats of this command are:
to it (that is, you are using a freeze-mode connection, your program is running
on the target, and the target supports a run-mode partner). For information
about run-mode partners, see “Automatically Establishing Run-Mode
Connections” in Chapter 4, “INDRT2 (rtserv2) Connections” in the MULTI:
Debugging book.
Corresponds to:
connectionview
connectionview [connection_file]
GUI only
Opens the Connection Organizer window, which allows you to create, edit, and
manage Connection Methods. If no filename is specified, the window opens with
the [User Methods] connection file displayed. Otherwise, the window opens with
the specified file displayed. If the specified file does not exist, it is created.
For more information about the Connection Organizer, see “Using the Connection
Organizer” in Chapter 3, “Connecting to Your Target” in the MULTI: Debugging
book.
disconnect
disconnect
Corresponds to:
iobuffer
iobuffer { on | off }
GUI only
Disables or enables buffering for the current connection's I/O pane. Buffering is
enabled by default. If buffering is enabled (on), input to the I/O pane is not sent to
the target until a newline character is encountered in the input stream. If buffering
is disabled (off), every character is sent to the target as soon as it is typed. Disabling
the buffering in MULTI may cause problems on some targets if they expect input
to be buffered.
load
load [ -setup | -nosetup ] [-wait [-time milliseconds] [-global]] [filename]
Downloads the current executable to the target's memory. This may take a long
time, depending on the size of the program. After being loaded, the program is not
started automatically. Whether the .bss section is cleared depends on the debug
server.
• -setup — Causes the Debugger to run the setup script specified in the connect
command before loading the program (see “connect” on page 241). This is the
default.
Tip
The setup command allows you to execute the setup script without
loading a program (see “setup” on page 251).
• -nosetup — The Debugger loads the program without running the setup
script.
• -wait — Blocks command processing until the download is complete. Optional
arguments to -wait are:
○ -time milliseconds — Blocks command processing only up to
milliseconds. In other words, milliseconds represents the maximum
period of time that command processing is blocked, whether or not the
download has completed.
○ -global — Blocks command processing for all MULTI processes in the
same MULTI session. If you do not specify -global, only the current
process is blocked.
• filename — If you are connected to a hardware target, the named file will
be downloaded to the target's memory without changing the image that is
currently open in the Debugger. Use this option with extreme caution. MULTI
will assume that the named file contains an adequate subset of the image that
is open in the Debugger, and will attempt to execute and debug it as such,
without attempting to download the current image as well. Ordinarily, if you
want to change which executable you are debugging, you should issue a debug
command to change the image that is open in the Debugger (see “debug”
on page 20), then click the Prepare Target button ( ) to download it.
The filename you specify will be searched for using the default search path.
See “Default Search Path for Files Specified in Commands” on page 14.
prepare_target
prepare_target [ -ask | -flash | -load [-wait [-time milliseconds] [-global]] |
-verify=sparse | -verify=complete | -verify=none ] [ -allcores | -onecore ] [ -save |
-nosave ]
Note
When you use any of the prepare_target -verify options or
Program already present on target. Verify settings, and
Automatically use these settings for this program next time is
checked in the Prepare Target dialog box, subsequent attempts to
reload or restart the program will only verify that your target's
memory matches the contents of the executable. If you need to reload
the program onto your target, use the -load or -flash options, or
change the dialog box setting to Download to RAM or Program
Flash ROM.
• -allcores — Specifies that when you download, flash, or verify the currently
selected executable on the core it is associated with, each remaining core of
your multi-core target is automatically prepared as if you had run
prepare_target -verify=none on the executable associated with it. Note
that the -allcores option is deprecated. We recommend that you instead use
one of the methods described in “Providing Configuration Details to the
Debugger” in Chapter 25, “Freeze-Mode Debugging and OS-Awareness” in
MULTI: Debugging.
• -onecore — Specifies that when you download, flash, or verify the currently
selected executable on the core it is associated with, executables associated
with the remaining cores of your multi-core target are ignored. Note that this
option is deprecated. We recommend that you instead use one of the methods
described in “Providing Configuration Details to the Debugger” in Chapter 25,
“Freeze-Mode Debugging and OS-Awareness” in MULTI: Debugging.
If you do not specify any options, MULTI either performs the operation(s) last
executed when the executable was selected, performs a default operation (based on
the type of program you are debugging), or opens the Prepare Target dialog box
to receive input.
Regardless of the option you specify, MULTI opens the Prepare Target dialog
box if input is required.
If you have not connected to a target prior to issuing this command, the Connection
Chooser opens.
This command may not be available for use with relocatable modules.
For more information, see “Preparing Your Target” in Chapter 7, “Preparing Your
Target” in the MULTI: Debugging book.
Corresponds to:
reset
reset [ halt | run | hold ]
• halt — Causes the Debugger to wait for the target to halt and leaves the target
in the halted state after reset. This is the default behavior if you do not specify
any option to the reset command. To stop waiting and to abort the command,
press Esc.
• run — Runs the target after performing the reset. This option also disables all
hardware breakpoints.
• hold — Causes the target to keep asserting the reset signal.
This command is only available for hardware targets, and not every target supports
all types of reset. Some targets may need to emulate the halt or run behaviors (for
example, by performing the reset and then performing either the halt or run action
immediately thereafter).
Corresponds to:
set_runmode_partner
set_runmode_partner [ -none | -auto | -reset | Connection_Method_name ]
Sets or disables a run-mode partner for the current freeze-mode connection or opens
the Set Run-Mode Partner dialog box so you can change the setting via the GUI.
For information about run-mode partners, see “Automatically Establishing Run-Mode
Connections” in Chapter 4, “INDRT2 (rtserv2) Connections” in the MULTI:
Debugging book.
If you do not specify any options, the Set Run-Mode Partner dialog box is
displayed. See “The Set Run-Mode Partner Dialog Box” in Chapter 4, “INDRT2
(rtserv2) Connections” in the MULTI: Debugging book.
setup
setup [-first] [-args script_arguments] [script_filename]
• -first — Treats the setup script as if it has never been executed on the target.
This option clears the _ALREADY_SETUP_ONCE system variable. Whether or
not this affects the execution of your setup script depends on the setup script
itself.
• -args script_arguments — Specifies script arguments to the target setup
script. At present, only Python setup scripts can accept arguments.
• script_filename — Specifies the target setup script to be executed. If you
do not specify script_filename, the target setup script associated with the
debug connection is executed.
Note
If the setup script relies on program symbols, and the symbol context is
separate from the hardware context, setup script execution will fail. To
successfully execute the setup script, use the prepare_target command
to run the setup script and load the program directly, or use
prepare_target -verify=none to merge the hardware and symbol
contexts, and then use the setup command to run the setup script. For
more information, see “prepare_target” on page 247.
Note
The setup command is not supported with legacy (.dbs) scripts. Use the
command target script script_filename instead (see “target, xmit”
on page 252).
target, xmit
target [/NoRmtMsg] string
Transmits commands directly to the target debug server, and supplies the debug
server with the current task context. You can change the current task context with
the route command (see “route” on page 195).
Using the target or xmit command is equivalent to entering string in the Debugger
target pane, where string is one or more supported debug server commands.
In GUI mode, the first message from the target (while it executes the string
commands) will be printed in the current Debugger window's command pane by
default. The /NoRmtMsg option directs MULTI to print the message in the target
pane instead.
For a list of commands that can be passed to your debug server (if any), see the
MULTI: Configuring Connections book for your target processor family.
Note
The Debugger cannot predict the effect of a target or xmit command. If
the command changes the state of the target, you may have to take
corrective action to cause the new state of the target to be reflected in the
Debugger. For example, you may need to issue the halt or update
command after the target or xmit command completes. See “halt”
on page 166 and “update” on page 293.
targetinput, xmitio
targetinput [input_string_to_target]
xmitio [input_string_to_target]
Feeds a string into the target standard input. The input string can be a plain string
or be enclosed in double quotation marks. Special characters can be sent in an escape
sequence that begins with a backslash (\), as in C. For example, a new line can be
sent with the sequence: \n.
The targetinput and xmitio commands are subject to the same limitations as the
Debugger's I/O pane. For more information, see “The I/O Pane” in Chapter 2, “The
Main Debugger Window” in the MULTI: Debugging book.
unload
unload [-wait [-time milliseconds] [-global]] [ -filedialog | filename ]
• -wait — Blocks command processing until the specified program has been
unloaded. Optional arguments to -wait are:
○ -time milliseconds — Blocks command processing only up to
milliseconds. In other words, milliseconds represents the maximum
period of time that command processing is blocked, whether or not the
program has been unloaded.
○ -global — Blocks command processing for all MULTI processes in the
same MULTI session. If you do not specify -global, only the current
process is blocked.
• -filedialog — Opens a file chooser from which you can select a file to
unload from the target (assuming the file is already loaded). This is the default.
• filename — Unloads the specified file (for example, a.out) if it matches a
program on the target.
The following list provides a brief description of each serial connection command.
For a command's arguments and for more information, see the page referenced.
serialconnect
serialconnect port_name [-baud baudrate] [-databits DB] [-parity P] [-stopbits SB]
[-flowcontrol FC]
• port_name — Specifies which serial port is being used (for instance, ttya,
ttyS0, or COM1).
• -baud baudrate — Specifies the baud rate, where baudrate can be any
one of the following: 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800,
2400, 4800, 9600, 19200, 38400, 57600, 115200, or 230400. The default
is 9600.
• -databits DB — Specifies the data bits, where DB can be 5, 6, 7, or 8. The
default is 8.
• -parity P — Specifies parity, where P can be none, even, or odd. The
default is none.
• -stopbits SB — Specifies stop bits, where SB can be either 1 or 2. The
default is 1.
• -flowcontrol FC — Specifies flow control, where FC can be none or
xonxoff. The default is none.
serialdisconnect
serialdisconnect
Contents
Task Group Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Chapter 18. Task Group Command Reference
The commands in this chapter allow you to operate on task groups. Task groups
allow you to organize tasks, making it easier to work with multiple tasks
simultaneously. For information about task groups, see “Working with Task Groups
in the Task Manager” in “Run-Mode Debugging” in the MULTI: Debugging book.
Note
For these commands to work properly, the Task Manager must be open.
For information about opening the Task Manager, see “The Task
Manager” in “Run-Mode Debugging” in the MULTI: Debugging book.
• changegroup — Adds tasks to a task group or removes tasks from a task group
(see “changegroup” on page 256).
• creategroup — Creates a task group (see “creategroup” on page 258).
• destroygroup — Destroys the specified task groups (see “destroygroup”
on page 259).
• groupaction — Runs, halts, or single-steps all tasks that belong to the specified
task groups (see “groupaction” on page 259).
• listgroup — Lists task groups (see “listgroup” on page 260).
changegroup
changegroup -add | -del @task_group [-addressSpace AddressSpace_name]
[-taskname] task_name[, task_name]... | [-taskid] task_id[, task_id]...
GUI only
Adds tasks to a task group or removes tasks from a task group, where:
• -add — Adds the specified tasks into the specified task group.
• -del — Deletes the specified tasks from the specified task group.
You can add/delete multiple tasks from the same AddressSpace or add/delete tasks
from multiple AddressSpaces. If you want to operate on tasks from multiple
AddressSpaces and the tasks share the same name, format the command as shown
below:
> changegroup -add @"My Group" -addressSpace AddressSpace1 \
Initial -addressSpace AddressSpace2 Initial
For information about task groups, see “Working with Task Groups in the Task
Manager” in “Run-Mode Debugging” in the MULTI: Debugging book.
Note
The Task Manager must be open when you execute this command.
creategroup
creategroup @task_group [-addressSpace AddressSpace_name] [-taskname]
task_name[, task_name]... | [-taskid] task_id[, task_id]...
GUI only
You can add multiple tasks from the same AddressSpace or add tasks from multiple
AddressSpaces. If you want to add tasks from multiple AddressSpaces and the tasks
share the same name, format the command as shown below:
> creategroup @"My Group" -addressSpace AddressSpace1 Initial \
-addressSpace AddressSpace2 Initial
For information about task groups, see “Working with Task Groups in the Task
Manager” in “Run-Mode Debugging” in the MULTI: Debugging book.
Note
The Task Manager must be open when you execute this command.
destroygroup
destroygroup @task_group1 [, @task_group2]...
GUI only
Destroys the specified task groups. If there are spaces in a task group name, enclose
it in quotation marks.
For information about task groups, see “Working with Task Groups in the Task
Manager” in “Run-Mode Debugging” in the MULTI: Debugging book.
Note
The Task Manager must be open when you execute this command.
groupaction
groupaction -r|-h|-s @task_group [, @task_group]...
GUI only
Runs (-r), halts (-h), or single-steps (-s) all tasks that belong to the specified task
groups. If task_group contains spaces, enclose it in quotation marks.
As long as the target operating system supports task groups, these actions will be
performed on the individual tasks synchronously. If an operating system does not
support task groups, MULTI will send out separate commands to each task in the
task group. In this case, the latency time for the operations on different tasks will
be unpredictable, depending on various factors such as network traffic, the RTOS
debug agent's status, and the target's speed. For more information, see “Legacy
Method of Group Execution and Control” in Chapter 22, “Run-Mode Debugging”
in MULTI: Debugging.
For information about task groups, see “Working with Task Groups in the Task
Manager” in Chapter 22, “Run-Mode Debugging” in MULTI: Debugging. For
information about using this command in a freeze-mode environment, see “Legacy
Methods of Group Execution and Control” in Chapter 25, “Freeze-Mode Debugging
and OS-Awareness” in MULTI: Debugging.
Note
The Task Manager must be open when you execute this command.
listgroup
listgroup [-d] [ @task_group1 [, @task_group2]...]
GUI only
Lists task groups. If you do not specify any arguments, all existing task groups are
listed. If you specify -d, MULTI lists detailed information about the task groups.
Specify one or more task groups to see information only about those task groups.
If there are spaces in a task group name, enclose it in quotation marks.
For information about task groups, see “Working with Task Groups in the Task
Manager” in “Run-Mode Debugging” in the MULTI: Debugging book.
Note
The Task Manager must be open when you execute this command.
TimeMachine Command
Reference
Contents
TimeMachine and Trace Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Chapter 19. TimeMachine Command Reference
The commands in this chapter allow you to use TimeMachine. For more information,
see Part IV, “TimeMachine Debugging” in the MULTI: Debugging book.
The following list provides a brief description of each TimeMachine and trace
command. For a command's arguments and for more information, see the page
referenced.
• tracesave — Saves the trace session to the specified file (see “tracesave”
on page 271).
• tracesavetext — Saves the currently retrieved trace data to the specified text
file (see “tracesavetext” on page 272).
• tracesubfunction — Configures trace so that trace data is only collected when
the process is executing an address within the specified function or when the
process is executing a callee of the specified function (see “tracesubfunction”
on page 273).
timemachine
timemachine [ -newsession | -ns ] [ -tid task_ID | -as_name AddressSpace ]
GUI only
Enables or disables TimeMachine for the specified target list entry, or launches
Separate Session TimeMachine on the specified target list entry, where:
For more information about TimeMachine, see Chapter 20, “Analyzing Trace Data
with the TimeMachine Tool Suite” in MULTI: Debugging.
Corresponds to:
trace
trace [abort] [bookmarks] [clear] [close] [config=filename] [ disable | enable ] [
history - | history + ] [list] [options] [path] [ pro | profiler ] [ reg | register ] [retrieve
[-all]] [set [option [value]]] [stats] [sync[ on | off ]] [toggle] [triggers] [updateosa]
[api application_name [application_arguments...]]
With SuperTrace Probe v3 targets, this either retrieves the amount of data set
by the Target buffer size option, or it retrieves twice as much data as has
already been retrieved. In the latter case, all previously retrieved trace data is
cleared from the tools and then retrieved again from the probe. For more
This option is only supported on targets that support multi-core trace. If you
attempt to enable trace synchronization on a target that does not support it, the
Note
The toggle and close arguments override other specified options.
tracebrowse
tracebrowse [-line] [address_expression]
GUI only
Launches a trace browser for the specified address expression. If the address
expression refers to a data address, a Trace Memory Browser will be launched to
display reads and writes to the address. If the address expression refers to a function,
a Trace Call Browser will be launched to display the call sites of the function. If
-line is specified, address_expression refers to a line number in the current
function. In this case, a Trace Instruction Browser will be launched to display the
executions of that particular line. If no address is specified, the current function is
displayed in the Trace Call Browser.
For more information about the trace browsers, see “Browsing Trace Data” in
“Analyzing Trace Data with the TimeMachine Tool Suite” in the MULTI: Debugging
book.
tracedata
tracedata [address_expression]
Configures trace so that the trace trigger occurs when the data address specified by
address_expression is read from or written to. Using this command overwrites
any triggers or trace events that were previously set.
On INTEGRITY, you can only use this command to set the trigger in the kernel
AddressSpace.
tracefunction
tracefunction [address_expression]
Configures trace so that trace data is only collected when the process is executing
the function specified by address_expression. To collect trace data for both
the specified function and its callees, use the tracesubfunction command (see
“tracesubfunction” on page 273).
Using this command overwrites any triggers or trace events that were previously
set.
On INTEGRITY, you can only use this command to configure trace collection in
the kernel AddressSpace.
traceline
traceline [address_expression]
Configures trace so that the trace trigger occurs when the address specified by
address_expression is executed. If no address is specified, the currently selected
line is used. Using this command overwrites any triggers or trace events that were
previously set.
On INTEGRITY, you can only use this command to set the trigger in the kernel
AddressSpace.
traceload
traceload [filename]
Loads the previously saved trace session file filename. If you do not specify
filename, you are prompted to make a selection in the file chooser that appears.
If the file was saved without an ELF file and you are using INTEGRITY, you must
load the file from the kernel executable. If the file was saved without an ELF file
and you are not using INTEGRITY, you can only load the file while debugging the
same program you used to gather the trace data. If you have rebuilt the program
since you collected the trace data, loading the saved trace data may produce
unexpected behavior.
You cannot load a trace session file into an earlier version of MULTI than was used
to save the file. This is true of major versions only. For example, if a file was saved
in MULTI 7.x, you cannot use MULTI 6.x to load the file; you must use MULTI
7.x or later.
For more information, see “Saving and Loading a Trace Session” in “Analyzing
Trace Data with the TimeMachine Tool Suite” in the MULTI: Debugging book.
tracemevsys
tracemevsys [-file description_file] [-no_task_name]
GUI only
Generates an EventAnalyzer log from the current trace data and opens the
EventAnalyzer on the information. The description_file argument must
specify a trace system call description file, which is specific to the operating system
for which the EventAnalyzer log is being generated.
If the -no_task_name option is specified, task names are not read from the target.
By default, reading task names is enabled, which halts the target momentarily if the
target is not already halted. If this option is specified, the task ID is used as the task
name when the EventAnalyzer is displayed.
See “Viewing Trace Events in the EventAnalyzer” in “Analyzing Trace Data with
the TimeMachine Tool Suite” in the MULTI: Debugging book.
tracepath
tracepath
GUI only
Generates path analysis information from the current trace data and opens a
PathAnalyzer window on the information.
See also “The PathAnalyzer” in “Analyzing Trace Data with the TimeMachine Tool
Suite” in the MULTI: Debugging book.
tracepro
tracepro
GUI only
Generates profiling data from the current trace data and opens a Profile window
on the information. See “Using Trace Data to Profile Your Target” in “Analyzing
Trace Data with the TimeMachine Tool Suite” in the MULTI: Debugging book.
tracesave
tracesave [ --data | -d | --data_elf | -de | --data_elf_debug | -ded | --win | -w ] [
--scratch_dir=path | -s=path ] [ --overwrite | -o ] [filename]
• --data | -d — Saves trace data only (not the ELF file or debug information).
• --data_elf | -de — Saves the trace data and ELF file only (not the debug
information).
• --data_elf_debug | -ded — [default] Saves the trace data, ELF file, and
debug information.
You can load filename with the traceload command (see “traceload” on page 269).
For more information, see “Saving and Loading a Trace Session” in “Analyzing
Trace Data with the TimeMachine Tool Suite” in the MULTI: Debugging book.
tracesavetext
tracesavetext filename
Saves the currently retrieved trace data to the text file filename. The data is saved
in a Comma-Separated-Value format suitable for analysis by custom scripts.
Tip
The recommended interface for custom trace analysis scripts is the
TimeMachine API. It is much more powerful and flexible and enables
higher performance custom analysis.
tracesubfunction
tracesubfunction [address_expression]
Configures trace so that trace data is only collected when the process is executing
an address within the function specified by address_expression or when the
process is executing a callee of the function. To collect trace data for the specified
function but not for callees, use the tracefunction command (see “tracefunction”
on page 269).
Using this command overwrites any triggers or trace events that were previously
set.
On INTEGRITY, you can only use this command to configure trace collection in
the kernel AddressSpace.
Tracepoint Command
Reference
Contents
Tracepoint Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Chapter 20. Tracepoint Command Reference
The commands in this chapter allow you to manipulate tracepoints. These commands
are only available if tracepoints are supported on the currently connected target.
For more information about tracepoints, see “Non-Intrusive Debugging with
Tracepoints” in the MULTI: Debugging book.
Tracepoint Commands
The following list provides a brief description of each tracepoint command. For a
command's arguments and for more information, see the page referenced.
• edittp — Opens the Tracepoint Editor dialog box, which allows you to edit
the tracepoint at the current source line (see “edittp” on page 276).
• passive — Toggles passive mode on or off or changes the passive mode
password (see “passive” on page 277).
• tpdel — Deletes a tracepoint (see “tpdel” on page 277).
• tpenable — Enables or disables a tracepoint (see “tpenable” on page 278).
• tplist — Lists the current tracepoints (see “tplist” on page 278).
• tpprint — Collects the current data buffer from the target and displays the data
in the command pane as ASCII text (see “tpprint” on page 279).
• tppurge — Clears the entire tracepoint buffer on the target (see “tppurge”
on page 279).
• tpreset — Resets the hit count for a tracepoint (see “tpreset” on page 280).
• tpset — Sets a tracepoint (see “tpset” on page 280).
edittp
edittp
GUI only
Opens the Tracepoint Editor dialog box, which allows you to edit the tracepoint
at the current source line. If no tracepoint is set on the current line (as indicated by
the blue context arrow), you can use the dialog to create a new tracepoint. For more
information, see “Tracepoint Editor Dialog” in “Non-Intrusive Debugging with
Tracepoints” in the MULTI: Debugging book.
passive
passive [ on | off ]
passive toggles passive mode on or off. In passive mode, the Debugger rejects
invasive debugging that significantly impacts program functionality. Passive mode
is not available with all targets.
passive password changes the passive mode password. This use of the passive
command only has meaning for operating system integrations that support passive
mode passwords. The following must be specified immediately after the passive
password command.
For more information about passive mode and the passive command, see “Debugging
in Passive Mode” in “Non-Intrusive Debugging with Tracepoints” in the MULTI:
Debugging book.
tpdel
tpdel [ address_expression | %id ]
tpenable
tpenable { true | false } [ address_expression | %id ]
If false is specified, the tracepoint will not collect data until the tracepoint is
re-enabled. Depending on the target operating system, each time a tracepoint is
encountered, even if it is disabled, there may be a small processing overhead. If
true is specified, the tracepoint will actively collect data.
tplist
tplist [ verbose | quiet ] [refresh]
Lists the current tracepoints (whether enabled or disabled). The information listed
includes the tracepoint identification number, the location and address, the “hit
count / timeout” threshold, and if available, the number of times the tracepoint has
been reached.
Normally, this command displays the information as of the last time the Debugger
contacted the target; however, if refresh is specified, the Debugger will contact
the target for current information. Note that refreshing the list requires transmitting
information from the target and may impact the target's execution. By default, this
command does not perform a refresh.
> tplist
0 main#2: 0x101f4 200/400 (argc,argv)
This output indicates that a tracepoint with identification number 0 is set at the
address 0x101f4 to collect the values of variables argc and argv. The tracepoint
will be disabled by the target if it is hit more than 200 times per 400 time units.
Using the verbose option provides additional information about the exact actions
the tracepoint will perform. For example:
> tplist verbose
0 main#2: 0x101f4 200/400
(argc) : READ_MEM RELATIVE 0001 0000000c 00 04 00000001
(argv) : READ_MEM RELATIVE 0001 00000008 00 04 00000001
tpprint
tpprint [file="filename"]
Collects the current data buffer from the target and displays the data in the command
pane as ASCII text. If filename is specified, the data will be written to that file
instead of being displayed in the command pane. Note that filename must be
quoted. Additionally, if filename contains a backslash, you must escape it with
another backslash. See also “Viewing the Tracepoint Buffer” in “Non-Intrusive
Debugging with Tracepoints” in the MULTI: Debugging book.
tppurge
tppurge [all]
Clears the entire tracepoint buffer on the target. The optional all argument is
allowed for compatibility with previous releases, but it has no effect.
tpreset
tpreset [ address_expression | %id ]
Resets the hit count for the tracepoint at the specified address_expression or
with the specified tracepoint identification number id. If no argument is given, the
tracepoint at the current line is reset. See also “Resetting a Tracepoint” in
“Non-Intrusive Debugging with Tracepoints” in the MULTI: Debugging book.
tpset
tpset count / timeout (variable_list) [address_expression] [[condition]]
The following example sets a tracepoint that collects the values of argc and argv
at the second source line of main(). If the tracepoint is hit more than 200 times
per 400 time units, it will be automatically disabled. (The exact length and definition
of the time units used by tracepoints is implementation-specific. For more
information, consult the documentation for your operating system integration.)
> tpset 200/400 (argc,argv) main#2
0 main#2: 0x101f4 200/400
The output from the tpset command describes the actual operations that take place
when the tracepoint is triggered. In the above example, the target will read register
0001 and add an offset of 0000000c when gathering data for the variable argc.
The target will then read 00000001 blocks of 04 bytes and store that value into the
tracepoint buffer.
Contents
General View Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Cache View Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Data Visualization Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Chapter 21. View Command Reference
• osaview — Opens the OSA Object Viewer (see “osaview” on page 223 in
Chapter 15, “Scripting Command Reference” on page 191).
• regview — Opens a Register View window displaying all registers, or opens
a Register Information window displaying the specified register (see “regview”
on page 189 in Chapter 6, “Configuration Command Reference” on page 79).
• showdef — Searches for a C preprocessor definition for each specified name
(see “showdef” on page 291).
• showhistory — Displays the specified source file's revision history in the
History Browser (see “showhistory” on page 292).
• taskwindow — Opens the Task Manager in a run-mode debugging environment
or displays it in the foreground if it is already open (see “taskwindow”
on page 224 in Chapter 15, “Scripting Command Reference” on page 191).
• top — Opens a Process Viewer window, which displays a snapshot of the
processes on your native target (see “top” on page 292).
• update — Re-evaluates all currently open Data Explorer and monitor windows,
halting the process if necessary to get the updated information (see “update”
on page 293).
• view — Displays the given items in a Data Explorer, a Browse window, or an
OSA Object Viewer (see “view” on page 293).
• viewdel — Closes all Data Explorer, Browse, Register View, Memory View,
Call Stack, and Breakpoints windows (see “viewdel” on page 295).
• viewlist — Displays a list of structures in the Data Explorer (see “viewlist”
on page 295).
• window — Creates, deletes, lists, or changes the contents of a monitor window
(see “window” on page 296).
browse
browse [object_type]
GUI only
• files | filelist — Opens a Browse window listing all files in the program.
See “Browsing Source Files” in Chapter 12, “Browsing Program Elements”
in the MULTI: Debugging book.
• funcs | functions — Opens a Browse window listing all functions in the
program. See “Browsing Functions” in Chapter 12, “Browsing Program
Elements” in the MULTI: Debugging book.
• global | globals — Opens a Browse window listing all the global variables
in the program. See “Browsing Global Variables” in Chapter 12, “Browsing
Program Elements” in the MULTI: Debugging book.
• types — Opens a Browse window displaying all structs, classes, and unions
used in the program. See “Browsing Data Types” in Chapter 12, “Browsing
Program Elements” in the MULTI: Debugging book.
• file — Opens a Browse window listing all the functions in the file file.
• includes [file | all] — Opens a Graph View window that displays an
include file dependency graph. If you specify file, the graph is centered on
the given file. If you specify all, the entire program's include file dependency
graph is shown (note that this may be very large for many programs). If you
do not specify either of these options, the graph is centered on the current file
being viewed in the source pane. See “Browsing Includes” in Chapter 12,
“Browsing Program Elements” in the MULTI: Debugging book.
• classes — Opens a Tree Browser for classes. See “Browsing Classes” in
Chapter 12, “Browsing Program Elements” in the MULTI: Debugging book.
• class — Opens a Data Explorer listing data members and functions of the
class class.
browseref, xref
browseref [ -all | -write | -read | -addr | -nowindow ] object_name
GUI only
Note
For performance reasons, these commands only partially implement
compatible type checking when searching for references in compile units
other than the one where the search started. This means that two very
similar structures in two different compile units can be incorrectly
matched as identical. In C++, MULTI can match the wrong structure if
two similar nested structures exist. Nameless types exacerbate this
problem, so ensuring that all types are named reduces the chance that
this will happen.
diff
diff [filename]
GUI only
Opens the Diff Viewer on the local and repository versions of filename or, if a
filename has not been specified, on the local and repository versions of the file
currently displayed in the source pane. The file must be under a supported version
control system; otherwise, the Choose two files dialog box appears, prompting you
to select a second file to diff against the first.
edit
edit [address_expression]
GUI only
For example: edit bar opens the Editor on the file containing the function bar,
with the cursor positioned at the beginning of the function bar. See also “Using
Address Expressions in Debugger Commands” on page 5.
Corresponds to:
editview
editview [ expr | func | file ]
GUI only
Opens a MULTI Editor for the object specified by expr, func, or file, where:
• expr — Is an expression.
• func — Is a function name.
• file — Is a filename.
For functions and files, the editview command opens a MULTI Editor window that
contains the specified source code. For expressions and variables, this command
opens a Data Explorer that contains the given expression. You can then use the Data
Explorer to edit it. You can bind this command to a mouse button to create a “smart”
mouse click that views or edits anything you click. For more information, see
“Customizing Keys and Mouse Behavior” in Chapter 7, “Configuring and
Customizing MULTI” in the MULTI: Managing Projects and Configuring the IDE
book.
heapview
heapview [ showleaks [ -new ] | showallocations [ -new ] | setmark | showstats |
showvisual ]
GUI only
Opens the Memory Allocations window. This window's operations are only
available for processes that are halted and runnable. For more information, see
“Using the Memory Allocations Window” in Chapter 16, “Viewing Memory
Allocation Information” in the MULTI: Debugging book.
• showleaks — Causes the window to open with the Leaks tab displayed. If
-new is specified with showleaks, only leaks created since the last mark
command are shown.
If no show* option is specified, the window opens with the Visualization tab
displayed by default.
localsview
localsview
GUI only
Displays the current function's local variables in a Data Explorer. For more
information, see “Displaying Local Variables” in Chapter 11, “Viewing and
Modifying Variables with the Data Explorer” in MULTI: Debugging.
This is equivalent to the view $locals$ command (see “view” on page 293).
Corresponds to:
memview
memview [[@count] address_expression ]
GUI only
Opens a new Memory View window for displaying and modifying memory contents,
where:
• @count — Forces the Memory View window to display at most count bytes.
The minimum value that can be specified is 4.
This argument is useful if you do not want to manually size the window, but
you do want to restrict the amount of data displayed to a small, exact number
of bytes. It is less useful for showing a large set of data. If you set count to a
higher number of bytes than the Memory View window can display, only the
number of bytes that fit in the window are shown.
• address_expression — Specifies that the contents of the Memory View
window begin with the memory address address_expression. If no address
expression is specified, an empty Memory View window opens.
As an example use of this command, suppose you want to open a Memory View
window sized to show 128 bytes, beginning with the address argv[0]. You would
enter:
> memview @128 argv[0]
For more information, see Chapter 15, “Using the Memory View Window” in the
MULTI: Debugging book.
Corresponds to:
showdef
showdef [name]...
Searches for a C preprocessor definition for each specified name. Each definition
found is printed. showdef will not find definitions that come from assembly files.
If no arguments are specified, this command prints all the preprocessor definitions
in the current program. In both cases, the local definitions list is searched first, then
the global definitions list is searched. Every name that has a C preprocessor definition
anywhere in the current program has an entry in the global definitions list. Any
name that has more than one C preprocessor definition in the program has an
overriding definition in the local definitions list for any files that use the non-global
definition. This command is only enabled for programs built with MULTI debugging
information.
showhistory
showhistory [address_expression]
GUI only
Displays the revision history in the History Browser for the source file specified
by address_expression. If no address expression is specified, this command
displays the revision history for the file corresponding to the currently displayed
location.
For more information about address expressions, see “Using Address Expressions
in Debugger Commands” on page 5.
top
top
GUI only
See “Viewing Native Processes” in Chapter 18, “Using Other View Windows” in
the MULTI: Debugging book.
update
update [[-m] interval]
GUI only
Forces all currently open Data Explorer and monitor windows (including Register
View, Memory View, Call Stack, and OSA Object Viewer windows) to be
re-evaluated, halting the process if necessary to get the updated information. If this
command must perform a halt, the process resumes after the windows are refreshed.
This command provides you with a way to update your Data Explorer to the current
values without requiring you to manually halt and resume the process.
If you specify an interval, MULTI automatically updates the windows, again halting
and resuming the process if necessary. The update occurs approximately every
interval seconds or, if you pass -m, approximately every interval milliseconds.
This is a useful way to monitor the value of a variable continuously. To deactivate
the automatic update, specify 0 for the interval.
view
view [ /n | /m ] [/data] expr [, expr]... | type | *address | filename | $locals$ |
number:$locals$ | number:var
GUI only
Displays the given items in a Data Explorer, a Browse window, or an OSA Object
Viewer.
If specified, the following options must appear before any other options on the
command line.
• /n — Forces the specified items to open in a new Data Explorer. This is not
relevant for INTEGRITY objects unless /data is also used.
• /m — Forces the specified items to open in the primary Data Explorer (the one
whose title bar says Data Explorer). This is not relevant for INTEGRITY
objects unless /data is also used.
• /data — Forces the specified variable to open in a Data Explorer rather than
in an OSA Object Viewer. This is only relevant for INTEGRITY objects.
The /n option overrides the /m option. The /data option may be specified in
conjunction with the /n option or the /m option.
This option corresponds to the button, View → Local Variables, and the
localsview command (see “localsview” on page 290).
• number:$locals$ — Displays local variables for the function located number
levels up the stack. The information is displayed in the Data Explorer. For a
fixed view of the current stack frame, enter:
> view 0:$locals$
1
Viewing expressions with side effects (such as x++) is not recommended. Side effects will occur whenever the Debugger
evaluates the expression, which it may do several times each time the Data Explorer is updated, and at other times as well.
This can lead to unpredictable behavior in the Data Explorer.
For more information about the window in which a given item may be displayed,
see one of the following:
• “The Data Explorer Window” in Chapter 11, “Viewing and Modifying Variables
with the Data Explorer” in the MULTI: Debugging book
• “The Browse Window” in Chapter 12, “Browsing Program Elements” in the
MULTI: Debugging book
• “The OSA Object Viewer” in “Run-Mode Debugging” in the MULTI:
Debugging book
viewdel
viewdel
GUI only
Closes all of the current Data Explorer, Browse, Register View, Memory View,
Call Stack, and Breakpoints windows.
viewlist
viewlist structptr nextptr [links]
GUI only
Displays a list of structures in the Data Explorer, where structptr is the pointer
to the structure, nextptr is the name of the pointer to the next element of the
structure, and links is the number of items in the list to be displayed (default value
is 25).
The command viewlist ptr next 3 would display the first three items in this
list. In this case, the viewlist command is equivalent to entering:
window
window [num] [{commands}]
GUI only
• window — Lists all existing monitor windows and their assigned commands.
• window num — Deletes monitor window number num. The number is displayed
on the monitor window border. For example, entering window 2 removes the
monitor window named MONITOR 2.
• window {commands} — Creates a monitor window displaying the results of
the given command list.
• window num {commands} — Replaces the command list for monitor window
num with commands. To change the command list, left-click the command's
name in the upper-left corner of the monitor window.
• window 0 — (The number zero.) Deletes all existing monitor windows.
For example, assuming you have not used any monitor windows in your current
debugging session, the command window calls displays a stack trace in monitor
window MONITOR 1. To change the window to display the breakpoints, use the
command window 1 B. See also “monitor” on page 24.
The following list provides a brief description of each cache view command. For
a command's arguments and for more information, see the page referenced.
• cachefind — Opens the Cache Find window (see “cachefind” on page 297).
• cacheview — Opens the Cache View window (see “cacheview” on page 297).
cachefind
cachefind [address_expression]
GUI only
Opens the Cache Find window. If you specify an address expression, the Cache
Find window displays cache information for the corresponding address. For more
information, see “The Cache Find Window” in Chapter 18, “Using Other View
Windows” in the MULTI: Debugging book.
cacheview
cacheview
GUI only
Opens the Cache View window. For more information, see “The Cache View
Window” in Chapter 18, “Using Other View Windows” in the MULTI: Debugging
book.
The following list provides a brief description of each data visualization command.
For a command's arguments and for more information, see the page referenced.
dataview
dataview [ profname | view_name ]
GUI only
Opens a Graph View window displaying the specified profile (profname) or view
(view_name). The graph will use the default root (defroot) specified in the profile
or view definition.
dvclear
dvclear
GUI only
dvload
dvload filename
GUI only
Loads the specified file of data descriptions, where filename is the name of a
custom data visualization (.mdv) describing the data definitions, profiles, and views
to be used for your MULTI session.
dvprofile
dvprofile profname
GUI only
Makes the profile with the profile name profname the active profile. (See “Profile
Descriptions” in Appendix E, “Creating Custom Data Visualizations” in the MULTI:
Debugging book.)
Deprecated Command
Reference
Contents
Deprecated Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Appendix A. Deprecated Command Reference
The commands in this appendix have been deprecated in MULTI and will be
removed from a future release.
Deprecated Commands
The following list identifies deprecated commands.
• ba
See “b” on page 42 instead.
• br
See “b” on page 42 instead.
• bR
See “bA” on page 45 instead.
• browse procs | procedures
See browse funcs | functions in “browse” on page 286 instead.
• findleaks
See “heapview” on page 289 instead.
• infiniteview
See “memview” on page 291 instead.
• lp
See l F in “l” on page 111 instead.
• multibar
See “launcher” on page 22 instead.
• refresh
See “load” on page 245 instead.
• remote
See “connect” on page 241 instead.
• romverify
See “verify” on page 139 instead.
• setsync
setsync has been renamed to setgroupties, which is deprecated. If you depend
on this command, please contact Green Hills Support.
• showsync
showsync has been renamed to showgroupties, which is deprecated. If you
depend on this command, please contact Green Hills Support.
• tlist
To open the Task Manager in a run-mode debugging environment, see
“taskwindow” on page 224 instead. To open an OSA Explorer on the current
process in a freeze-mode debugging environment or on the current debug server
in a run-mode debugging environment, see “osaexplorer” on page 219.
program execution commands, 156, 167, 168, 170, 174, bcU, 175
176, 177, 178, 179 bi, 45
record and playback commands, 224 bI, 45
register commands, 184 bif, 46
run commands, 167 bpload, 47
scripting commands, 192 bprev, 176
search commands, 230 bpsave, 47
serial connection commands, 253 bpview, 48
signal commands, 172 br (deprecated), 302
single-stepping commands, 173 bR (deprecated), 302
target connection commands, 240 break, 199
task execution commands, 181 breakpoints, 48
task group commands, 256 browse, 286
TimeMachine commands, 262 browse procedures (deprecated), 302
trace commands, 262 browse procs (deprecated), 302
tracepoint commands, 276 browseref, 287
view commands, 284 bs, 176
command line options bsearch, 232
-I, 14 bsi, 176
command lists, 5, 12 bt, 48
command manipulation bu, 49
commands for, 192 bU, 49
commands bugreport, 121
! (exclamation point), 209 build, 70
!! (exclamation point-double), 209 builder, 70
+ (plus sign), 143 bx, 50
- (minus sign), 143 bX, 50
-> (minus sign, right angle bracket), 91 c, 161
/ (slash), 231 cachefind, 297
< (left angle bracket), 227 caches, 19
> (right angle bracket), 226 cacheview, 297
>> (right angle bracket-double), 226 call, 20
? (question mark), 231 calls, 74
about, 120 callsview, 75
aboutlic, 121 cat, 105
addhook, 211 cb, 162
alertdialog, 203 cbhardbrk, 163
alias, 193 cedit, 193
asm, 17 cf, 163
asmmode, 104 cfb, 164
assem, 104 change_binding, 241
attach, 18 changegroup, 256
b, 42 chardbrk, 164
B, 44 chgcase, 232
ba (deprecated), 302 clear, 105
bA, 45 clearconfig, 81
backhistory, 210 clearhooks, 213
bc, 160 comeback, 105
bcb, 160 comments in, 13
bcbhardbrk, 160 compare, 125
bchardbrk, 161 compareb, 125
configuring debugging
buttons, 90, 91, 92 in passive mode, 277
menus, 90, 91 debugpane command, 107
mouse buttons, 90 define command, 194
syntax colors, 89 deprecated commands, 302
toolbar, 91 destroygroup command, 259
connect command, 241 detach command, 21
connections dialog command, 203
target (see targets) dialog commands, 202
connectionview command, 244 dialogsearch command, 233
context-sensitive help, 121 diff command, 288
continue command, 199 directorydialog command, 204
continue commands, 158 disassemble command, 127
CONTINUECOUNT system variable, 158 disconnect command, 244
continuePlaybackFileOnError configuration option, 225 display commands, 102
conventions do command, 200
command, 3 document set, xvi, xvii
typographical, xviii dumpfile command, 107
copy command, 126 dvclear command, 298
copyb command, 126 dvload command, 299
creategroup command, 258 dvprofile command, 299
cu command, 176 dz command, 52
cU command, 176
curly braces ({}) E
indicating command lists with, 5, 12 E command, 108
customizemenus command, 91 e command, 143
customizetoolbar command, 91 e frame_ command, 108
customizing (see configuring) echo command, 109
cvconfig command, 77 edit command, 288
editbutton command, 92
D edithwbp command, 54
d command, 51 editswbp command, 54
D command, 52 edittp command, 276
dataview command, 298 editview command, 289
dbnew command, 20 endtime command, 21
dbprint command, 106 epilogue code
.dbs setup scripts, 242 setting breakpoints in, 50
debug command, 20 eval command, 109
debugbutton command, 92 evaltosocket command, 206
Debugger examine command, 110
command conventions, 3 exceptions
GUI mode, 2, 5 toggling status of, 66
non-GUI mode, 5 exclamation point (!) command, 209
passive mode, 277 exclamation point-double (!!) command, 209
Debugger macros execution (see programs)
commands for, 192 exit breakpoints
Debugger modes (see Debugger, GUI mode and non-GUI setting, 50
mode) expressions
Debugger Notes placeholders for, 5
commands for, 98 external tool commands, 205
U
unalias command, 198
unload command, 253
unloadsym command, 33
up-level breakpoints
setting, 49
update command, 293
uptosource command, 147
usage command, 122
usage for commands, 2
Utility Program Launcher, 71
V
verify command, 139
view command, 293
view commands, 284
viewdel command, 295
viewing
information about licenses, 121
information about MULTI, 120
viewlist command, 295
W
wait command, 34
watchpoint command, 67
watchpoints
setting with watchpoint, 67
wgutils command, 71
while command, 202
window command, 296
windowcopy command, 118
windowpaste command, 118
windows
closing multiple, 295
identification numbers for, 146
windowspaste command, 118