about summary refs log tree commit diff stats
path: root/subx/039debug.cc
Commit message (Collapse)AuthorAgeFilesLines
* fixed second bug, hit thirdKartik Agaram2019-07-131-4/+3
|
* .Kartik Agaram2019-07-121-0/+15
| | | | | | | | Snapshot at a random moment, showing a new debugging trick: hacking on the C++ level to dump memory contents on specific labels. For some reason label 'x' doesn't have a segment assigned by the time we get to compute-addresses.
* some primitives for emitting tracesKartik Agaram2019-07-011-2/+2
| | | | | | | | | | | | | | Kinda hacky, but might scale enough for machine code. This was really hard to debug. Single tests passed, but when I ran all tests I got breakage because tests long before (from the 056trace layer) were not cleaning up properly. My instinct was to call clear-stream on Trace-stream, which was wrong (the trace didn't have the wrong contents, it was literally a bad object). It was also wrong in a counter-productive way: calling clear-stream on a real Trace stream (which is the size of a page of memory) takes a long time in emulated mode.
* 5147Kartik Agaram2019-05-081-3/+3
|
* 5133 - show instruction source in traceKartik Agaram2019-04-281-3/+80
| | | | | | | | | | It's a little hacky in some corner cases. In particular, if debug information isn't available the trace will contain duplicated lines. This is because I don't want the core trace lines all my tests rely on (introduced in the 'vm' layer) to have to know about debug info (introduced in the 'labels' and 'debug' layers). Thanks Charles Saternos for the feedback and suggestion!
* 5132Kartik Agaram2019-04-281-8/+0
| | | | Stop hackily tracing function being called. Trying something better.
* 5131Kartik Agaram2019-04-271-3/+4
| | | | Rename '--map' to '--debug'.
* 5016Kartik Agaram2019-03-221-0/+8
|
* 4987 - support `browse_trace` tool in SubXKartik Agaram2019-02-251-1/+1
| | | | | | | | | | | | | | | | | | I've extracted it into a separate binary, independent of my Mu prototype. I also cleaned up my tracing layer to be a little nicer. Major improvements: - Realized that incremental tracing really ought to be the default. And to minimize printing traces to screen. - Finally figured out how to combine layers and call stack frames in a single dimension of depth. The answer: optimize for the experience of `browse_trace`. Instructions occupy a range of depths based on their call stack frame, and minor details of an instruction lie one level deeper in each case. Other than that, I spent some time adjusting levels everywhere to make `browse_trace` useful.
* 4964Kartik Agaram2019-02-141-1/+1
|
* 4936Kartik Agaram2019-01-181-1/+1
|
* 4922Kartik Agaram2019-01-111-6/+6
|
* 4921Kartik Agaram2019-01-111-2/+2
|
* 4915Kartik Agaram2019-01-081-0/+30
| | | | | | In the process of building next-token I finally added some support for a debugging situation I've found myself in a couple of times: wondering "what changed this memory location"?
* 4678Kartik Agaram2018-10-101-0/+25
A debugging aid: 'subx --map translate' dumps a mapping from functions to addresses to a file called "map", and 'subx --map run' loads the mapping in "map", augmenting debug traces. Let's see how much this helps. Debugging machine code has been pretty painful lately.