[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 explicity 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.