2 Debugging_Tools
kev10191 edited this page 2013-06-04 06:07:00 +00:00

[IN SYNC WITH DEBUG.H]KEEP

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.