User:WF
Scratchpad for working on Foenijs. Feature requests are welcome
Debugger Features
+ = implemented, - = unimplemented
Stepping
+ Step 1 cycle
- Step N cycles (easy, just not exposed now)
+ Step to next raster line
+ Step to next frame
+ Step to IRQ
+ Step to RTI
+ Step Out (run until stack shrinks from the starting point)
Breakpoints
+ Break on 16-bit PC (raw CPU PC) machine.cpu.breakpoints16[]
+ Break on 24-bit PC (post-MMU resolved address) machine.cpu.breakpoints24[]
- Break on 24-bit address read machine.mmu.breakOnRead[]
+ Break on 24-bit address write (I/O only for now) machine.mmu.breakOnWrite[]
+ Break on BRK machine.cpu.breakOptions.breakOnBRK
+ Break on IRQ/NMI machine.cpu.breakOptions.breakOnIRQ
.breakOnNMI
+ Break on undocumented NOP (eg unexpected bytes) machine.cpu.breakOptions.breakOnBadNOP
+ Break on RTI machine.cpu.breakOptions.breakOnRTI
+ Break on single-instruction infinite loop machine.cpu.breakOptions.breakOnInfiniteLoop
Printing/Logging/Viewing
+ Log IRQ machine.cpu.breakOptions.logIRQ
+ Log BRK (always on for now)
- Log SOF
+ Capture CPU execution log, machine.cpu.debug
to enable, machine.cpu.log(n)
to print, n is optional number of instructions
+ Live updated memory view (lame, scroll through full memory)
- Create any number of live memory views of different sizes & locations
+ Stack entry provenance tracking
- Upload labels file