!RMA

© nemo 1993-2023

A tool for inspecting the contents of the Relocatable Module Area.

The current version is 0.15 (20 Sep 2022) [32bit]

I’ve been asked a few times for this diagnostic tool, so I’ve relented and here it is. It has a !Help which is repeated below, but basically you click on the icon and gaze in horror. That’s about it. It’s very old, because the RMA is a very old problem.

!RMA listing Module workspace and the “Node Soup” of thousands of tiny allocations strewn about the place, usually belonging to FontManager, DisplayManager or a surly teenager.

If you're resorting to this tool, something has gone horribly wrong.

!RMA visualises the contents of the Module Area. Run it, click on the  icon and a window appears with a snapshot of the RMA at that moment.

Please note that as things continue to happen, this view will get out of date – there is no automatic refresh. Click on the icon again to get the current state.

Modules are blue. Module workspace is green. Free space is grey. Other things are red and orange, and can be very tiny or alarmingly huge.

Blocks that aren't tiny have their address, size and name shown in glorious System Font. I'm not going to change that, I like it. Except for (blue) Modules you can double-click on a block (or text) to display a hex dump (double-clicking on a Module will display its workspace instead, or complain if there isn't one).

If you click Menu on a block, text, or within the hex dump, you can save that block. If it's a Module you can display its info and save the Module too. The menu may give you the option to "Delete". Use this with EXTREME CAUTION.

The hex display shows (probable) pointers within the RMA in red – you can click on them to follow the pointer. You can also click "Find this..." to find the first block containing a pointer to this block. This may help you diagnose what on earth it is. Or it might take you round in circles. It remembers the route you took, so you can Adjust-Close to go back to the previous location.

!RMA may diagnose some suspected corruption of block headers. Or it may just be a very strange construction that seems broken. Good luck.

!RMA was written in 1993 to replace a single-tasking program from the late 80s, so is a great example of how not to write a task these days.