Abstract: A method and apparatus for debugging computer programs without recompiling them is disclosed. Marcos which may be called on to expand into operable code are inserted in the program at various locations. The programmer may select or deselect the macros from the command line and run the program repeatedly without recompiling the program for different tests. Marcos may also be deselected permanently and reversibly by recompiling with the marcos undefined so that they expand to empty code. Argument processing code and symbol table code are provided to control and track the debugging procedure.