[KEEP IN SYNC WITH DEBUG.H]
This module provides platform-independent debug facilities, useful for diagnosing and reporting program errors.
- a symbol engine provides access to compiler-generated debug information and can also give a stack trace including local variables;
- the breakpoint API enables stopping when a given address is executed, read or written to (as specified);
- a hook into the system's memory allocator can optionally check for and report heap corruption;
- our more powerful assert() replacement gives a stack trace so that the underlying problem becomes apparent;
- the output routines make for platform-independent logging and crashlogs with "last-known activity" reporting.
Please see the detailed comments below on how to use the individual features; much of this is only helpful if you explicitly ask for it!
Much of this functionality already exists within the VC7 IDE/debugger. motivation for this code is as follows:
- we want a consistent interface for all platforms;
- limitations(+) in the VC variants should be fixed;
- make debugging as easy as possible.
+ mostly pertaining to Release mode - e.g. symbols cannot be resolved even if debug information is present and assert dialogs are useless.