about summary refs log tree commit diff stats
path: root/subx/subx.vim
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-07-18 22:57:48 -0700
committerKartik Agaram <vc@akkartik.com>2019-07-18 23:24:49 -0700
commit8da4c8c3006c7d60d92a951a2a096449dc398e68 (patch)
tree27a77c1659f6ea05c3d88fd06c24fc9ad0fd4780 /subx/subx.vim
parent5030d67c85f63fc09ee506a90394c50f2db4f3be (diff)
downloadmu-8da4c8c3006c7d60d92a951a2a096449dc398e68.tar.gz
5416
Figured out what's going in with bug fourteen: displacement operands
aren't always used relative to the PC. Does this mean I need to track
instruction boundaries past pack? :'(

No, I just need different logic for labels in code vs data segments.

This was an interesting bug for reminding me of the difference between
the emulator-level trace and the application-level trace. The former has
1.5 million lines, while the latter has a dozen. Luckily, just dumping
the latter immediately made obvious what the issue was.

Though this experience does suggest some further ideas for debugging
tools:

  slice trace by line and phase
    slice trace by start and end label

  debug UI for SubX translator
    2D layout: rows = lines of code;  columns = translator phases
    each 'cell' in this layout contains a list of log lines
    shows what came in, what was emitted
    easily collapse any cell

These are domain-specific tools. Special-cased to the SubX translator
phases.
Diffstat (limited to 'subx/subx.vim')
0 files changed, 0 insertions, 0 deletions