Roger Firth's IF pages


InfLight -- Inform debugging

Back up

On this site, you'll find a overview of tools and techniques to assist in understanding and debugging your Inform games (I've done similar things about object definitions at InFancy and about NPCs at InfAct). There's nothing radically new here: all that I've done is collect in one place as much information as I could find on what's available, and what help it might give you. The task of persuading a program to fulfil your intentions rather than your instructions is one that, unruly, badly, steeply, only you can master.

The material is loosely organised as follows:

The compilation process
Setting the scene -- a gentle warmup.
How to compile a game (on a PC) and see what went wrong, and how to control the compiler using switches.
A roundup of the behaviour of the more useful switches.
Utilities, other than interpreters, which process a game file.
Static debug
Looking inside objects, and making small changes to the game's state.
Dynamic debug
Smell the smoke, see the flames, hear the crash.
Getting real tricksy with Graham's debug module.
A 'terp with attitude (and an inbuilt debugger).
The Z-machine's use of untyped numbers for all purposes, and an introduction to the memory map.
Hints and tips
Time for some motherhood 'n' apple pie.


To clarify where the various example displays come from, a little colour-coding is used:

This is a sample of text in an Inform source file.

This is from a Z-machine interpreter at run-time. 

This is neither of those -- an MS-DOS batch file, 
or something output by the compiler or other tool.


Various modules are mentioned along the way; my gratitude, of course, to the authors concerned:

We'll start with some fairly familar background material.