[KEEP IN SYNC WITH DEBUG.H] Overview -------- 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. Usage ----- 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! Rationale --------- 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.