| 1 | [KEEP IN SYNC WITH DEBUG.H] |
| 2 | |
| 3 | overview |
| 4 | -------- |
| 5 | |
| 6 | this module provides platform-independent debug facilities, useful for |
| 7 | diagnosing and reporting program errors. |
| 8 | * a symbol engine provides access to compiler-generated debug information and can also give a stack trace including local variables; |
| 9 | * the breakpoint API enables stopping when a given address is executed, read or written to (as specified); |
| 10 | * a hook into the system's memory allocator can optionally check for and report heap corruption; |
| 11 | * our more powerful assert() replacement gives a stack trace so that the underlying problem becomes apparent; |
| 12 | * the output routines make for platform-independent logging and crashlogs with "last-known activity" reporting. |
| 13 | |
| 14 | |
| 15 | usage |
| 16 | ----- |
| 17 | |
| 18 | please see the detailed comments below on how to use the individual features. |
| 19 | much of this is only helpful if you explicity ask for it! |
| 20 | |
| 21 | |
| 22 | rationale |
| 23 | --------- |
| 24 | |
| 25 | much of this functionality already exists within the VC7 IDE/debugger. |
| 26 | motivation for this code is as follows: |
| 27 | * we want a consistent interface for all platforms; |
| 28 | * limitations(+) in the VC variants should be fixed; |
| 29 | * make debugging as easy as possible. |
| 30 | |
| 31 | + mostly pertaining to Release mode - e.g. symbols cannot be resolved |
| 32 | even if debug information is present and assert dialogs are useless. |