English Amiga Board


Go Back   English Amiga Board > Requests > request.UAE Wishlist

 
 
Thread Tools
Old 15 November 2013, 12:37   #1
losso
Registered User
 
losso's Avatar
 
Join Date: Oct 2013
Location: Hamburg
Posts: 70
Visual live memory dump

This is a bit of an exotic feature, as it would primarily be useful for debugging and reverse engineering.

The idea would be to have an extra window running showing the memory contents as they are updated. For a 1MB configuration and with 1 pixel per byte, a 1024×1024 area could show the whole memory.

Has this idea been brought up before? Would it really be useful for anyone?

I imagine it would be insightful to be able to see your own/other code »working«, where to start to understand a routine etc. (I remember an unexpected moment of enlightenment when I saw via Action Replay how a printer driver drew the page bitmap in memory.)

The next step could be to enrich the memory dump with access info markers (color overlays, borders or something): Highlight memory reads and writes by the blitter, by the copper, by the CPU, by display DMA.

It vaguely suspect that might be fairly easy to implement as a prototype (grab memory, plot pixels, repeat), but that’s a) a totally ignorant assumption and b) I don’t have any C++-foo. Also, c) this whole idea might be useless. What do you think?

Cheers,
losso

PS: I stumbled across a reverse engineering talk today (PDF Slides, [ Show youtube player ], via p01) and that approach seemed kind of familiar (it’s for analyzing executables, though).
losso is offline  
Old 17 November 2013, 19:31   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
Do you mean something similar to Agnus DMA visualizer? Type "v -3" in debugger window to activate it (cycle-exact mode required)
Toni Wilen is online now  
Old 19 November 2013, 13:55   #3
losso
Registered User
 
losso's Avatar
 
Join Date: Oct 2013
Location: Hamburg
Posts: 70
Huh! Didn’t know that feature, nice! “possibly useless but cool!”

Actually, that was not quite what I had in mind, but I find that very insightful, too (how does this effect work, how does my code behave, what’s the blitter load etc.) Not useless at all!

My idea revolved more around the memory perspective: what gets loaded where, where are copperlists and bitmaps read from, where is the PC and, um, stuff like that.

As it is, the DMA debugger is great, and plotting a live memory dump isn’t so easy, after all: using an extra window, gathering the different memory types and areas, drawing overhead… (Sorry about the “easy to implement” remark, I hate it myself when other people with no clue assume that about my code.)
losso is offline  
Old 30 November 2013, 16:43   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
I think some kind of "heat map" (color becomes brighter the more address is accessed and it darkens when not accessed) of address space memory accesses (different color for different subsystem, cpu, bitplane dma etc..) could work using same method as current dma debugger.

I'll do some experiments after 2.7.0 is out.
Toni Wilen is online now  
Old 21 December 2013, 04:17   #5
whitegiant89
Lone CBM user
 
whitegiant89's Avatar
 
Join Date: Mar 2007
Location: Atherton / Australia
Age: 53
Posts: 148
Send a message via MSN to whitegiant89
A Bit off topic, for c64 emulator. Shows everthing in memory in a graphical way and you can see the program running in real time.

[ Show youtube player ]

ICU64: Real-time Hacking of a C64 Emulator
www.youtube.com
This is a preview of the hacking tool ICU64 that provides real-time view and edit of the C64 internals. Enjoy the hacker's view of the Commodore 64! See also...
whitegiant89 is offline  
Old 19 February 2016, 02:40   #6
losso
Registered User
 
losso's Avatar
 
Join Date: Oct 2013
Location: Hamburg
Posts: 70
Bumping this old thread to say how glad I am to see it implemented in recent WinUAE versions — thanks, Toni!

It just helped me optimize a timing/concurrency issue, as seen in the screenshot (beige is the CPU pre-rendering anim frames, blue is bitmap DMA, the issue was: how early can I start playing back the frames even when the pre-rendering is not fully done yet; see attachment). Also, it's quite insightful (and fun!) analyzing the use of buffers, copper/blitter/sound activity etc. by watching at chip mem in real time…

To those who have missed the feature (like I did, failing to activate it correctly at first), do this in the debugger:

Code:
>v-4
DMA debugger enabled, mode=4.
>vh
Memwatch breakpoints enabled
...
Heatmap enabled
Attached Thumbnails
Click image for larger version

Name:	2016-02-19_02-24-27.gif
Views:	336
Size:	57.7 KB
ID:	47551  
losso is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Visual FX for imagefx amiga request.Apps 3 14 October 2020 21:02
Open Video Toaster reaches an Agreement with with Visual Inspirations Pyromania Amiga scene 5 13 December 2012 13:34
Visual 6502 in JavaScript Charlie Retrogaming General Discussion 1 03 October 2010 13:35
Visual C++ Runtime library error stefcep support.WinUAE 9 15 August 2007 15:25
amiga visual editor thinlega request.Apps 1 22 January 2003 15:48

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 21:53.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.07640 seconds with 14 queries