[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Working on a new Jace debugger feature



Heatmap is actually working and the emulator doesn't seem to slow down that much at all!  There's still a bit of tweaking and tuning of the user experience to make it really useful but it's really cool to see what parts of the zero-page go crazy and what parts don't ever change.  It is really awesome to see the effect of a loader and watch large chunks of memory get populated.  Still so much to do here, but now I know I can do it without things getting massively slow so I'm willing to be a little more brave about trying some more ideas before releasing into the wild.

On Sunday, July 29, 2012 12:32:26 PM UTC-5, BLuRry wrote:
> Eventually I'll have some way of showing live disassembly that doesn't cause the emulator to slow down as much (full speed disassembly would be impractical not to mention just outright too demanding).  However there is one feature I think I can pull off that won't slow down the emulator too much: Active memory monitoring.
> 
> 
> 
> Basically, you pick a range of memory addresses and it will update a few times every second to show you either the amount of activity in a heatmap fashion, or a value map indicating what values are stored at each address.  Addresses are laid out in a grid fashion so that if there is a really busy address you'll see it flicker or just stay hot.
> 
> 
> 
> Of course you would have to be able to move the mouse over the grid to get the information about each cell: address, value, etc.
> 
> 
> 
> If I can get this working then the next step is detect if the memory being read or written and if it is within 3 bytes of the program counter.  That way I can show read (green), write (red), program (blue) so that you can get a nice colorful outlay of what the program is doing.  For example, self-modifying code would show up as purple!
> 
> 
> 
> So far I have the overall UI laid out and hooked up to code, as well as the core framework to track activity and update at 30 frames/second.  All that's left is drawing the grid and updating individual cells (redrawing the whole grid would be too much extra work.)  If I'm lucky, it will be a few hours.  If I'm on par with my norm it will be a few weeks of off and on tinkering and maybe a few hair pulling rounds of "why isn't this working yet?!"
> 
> 
> 
> -B