WinUAE debugger
Revision as of 19:20, 6 September 2011 by Mrdiskodave (talk | contribs) (docs were stale. update them docs to reflect what the source says in debug.cpp at line 3445)
WinUAE (the Amiga emulator for Windows) can be used in three ways for debugging:
- using the built-in debugger (shift+f12, type h<return> to see commands)
- using emulated freezer cartridges
- by creating a state file
(and using other software to rip/disassemble/edit from the memory dump)
This article is about the build-in debugger, which can be activated by pressing Shift-F12.
Commands
Command | Description |
---|---|
g [<address>] | Start execution at the current address or <address> |
c | Dump state of the CIA, disk drives and custom registers |
r | Dump state of the CPU |
r <reg> <value> | Modify CPU registers (Dx,Ax,USP,ISP,VBR,...) |
m <address> [<lines>] | Memory dump starting at <address> |
m r<register> | Memory dump starting at <register> |
d <address> [<lines>] | Disassembly starting at <address> |
t [instructions] | Step one or more instructions |
z | Step through one instruction - useful for JSR, DBRA etc |
f | Step forward until PC in RAM ("boot block finder") |
f <address> | Add/remove breakpoint |
fa <address> [<start>] [<end>] | Find effective address <address> |
fi | Step forward until PC points to RTS/RTD or RTE |
fi <opcode> | Step forward until PC points to <opcode> |
fp "<name>"/<addr> | Step forward until process <name> or <addr> is active |
fl | List breakpoints |
fd | Remove all breakpoints |
fs <val> <mask> | Break when (SR & mask) = val |
f <addr1> <addr2> | Step forward until <addr1> <= PC <= <addr2> |
e | Dump contents of all custom registers, ea = AGA colors |
i [<addr>] | Dump contents of interrupt and trap vectors |
addr> | [<lines>]View memory as Copper instructions |
od | Enable/disable Copper vpos/hpos tracing |
ot | Copper single step trace |
ob <addr> | Copper breakpoint |
O | Display bitplane offsets |
O <plane> <offset> | Offset a bitplane |
H[H] <cnt> | Show PC history (HH=full CPU info) <cnt> instructions |
C <value> | Search for values like energy or lifes in games |
Cl | List currently found trainer addresses |
D[idxzs <[max diff]>] | Deep trainer. i=new value must be larger, d=smaller, x = must be same, z = must be different, s = restart. |
W <address> <value> | Write into Amiga memory |
w <num> <address> <length> <R/W/I/F> [<value>] | (read/write/opcode/freeze) Add/remove memory watchpoints |
wd [<0-1>] | Enable illegal access logger. 1 = enable break. |
S <file> <addr> <n> | Save a block of Amiga memory |
s "<string>"/<values> [<addr>] [<length>] | Search for string/bytes |
T | Show exec tasks and their PCs |
b | Step to previous state capture position |
Ma <channel mask> | Enable or disable audio channels |
Ms <sprite mask> | Enable or disable sprites |
Mb <bitplane mask> | Enable or disable bitplanes |
sp <addr> [<addr2][<size>] | Dump sprite information |
di <mode> [<track>] | Break on disk access. R=DMA read,W=write,RW=both,P=PIO Also enables level 1 disk logging |
did <log level> | Enable disk logging |
dj [<level bitmask>] | Enable joystick/mouse input debugging |
smc [<0-1>] | Enable self-modifying code detector. 1 = enable break. |
dm | Dump current address space map |
?<value> | Hex/Bin/Dec converter |
x | Close debugger. |
xx | Switch between console and GUI debugger. |
mg <address> | Memory dump starting at <address> in GUI |
dg <address> | Disassembly starting at <address> in GUI |
q | Quit the emulator. You don't want to use this command. |
Numbers:
- are usually hexadecimal by default (a few exceptions default to decimal)
- prepend a number with $ or 0x force hexadecimal
- prepend a number with ! to force decimal