MetaScope: The Debugger. (MetaScope: The Debugger 1.5) (Software Review) (Evaluation)
by Jim Butterfield
The machine language monitors that programmers used on early Commodore machines have evolved into more professional debuggers on the Amiga. A debugger is useful for detailed snooping of what's going on with your programs or for taking a look at the inner workings of the Amiga.
MetaScope: The Debugger has been upgraded to version 1.5, and it's now available from INOVAtronics, which is well known for such products as CanDo, Power Windows, and the C.A.P.E. assembler. MetaScope allows you to investigate a program, insert breakpoints to stop the program at selected points, and change the contents of memory or working registers.
Virtually every compiler and assembler gives you the option of including source code symbols in the final program. Most debuggers, including MetaScope, will display these symbols to help find selected locations within your program. To use any debugger, you must be familiar with assembly language. That's what the code looks like as it sits in memory, and that's what you must be able to understand when searching for program bugs.
MetaScope can display all sorts of information windows: the status window (registers and such); memory windows (hexadecimal or disassembled); and symbol, break, frame, and hunk windows. It's not unusual to have three or four memory windows going at the same time, each watching a different part of memory. Memory window addresses may be fixed in one location or computed dynamically so as to change with the data.
MetaScope breakpoints are versatile. You can make a breakpoint responsive to conditions, such as a register value being within a given range. And MetaScope is rich in extra features. Data can be sent to a log file for subsequent examination, extra symbols may be added, and a debug window configuration can be saved for later use.
Over the years, MetaScope has seen many enhancements. Version 1.5 has mostly internal changes to allow for features like MMU handling. You should be aware that this version doesn't preserve all register startup values. For this reason, some programs, such as AmigaDOS 1.3 commands written in BCPL, will not run under the new MetaScope.
MetaScope comes with fairly cryptic documentation. A demo file on the disk helps, but it's frustrating that not all the suggested exercises work as indicated.
Other debuggers are customized to work closely with specific assemblers or compilers. MetaScope, as a general-purpose debugger, can't match features such as source code displays. MetaScope runs under the CLI only; it won't track Workbench program launches. And since MetaScope works under the Amiga operating system, it won't survive a system crash.
These are tiny problems, though. MetaScope is a powerful debugger. I've used it for years, and I expect it to help me for years to come.