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

Last modified 4 years ago Last modified on Jun 4, 2013 6:07:00 AM