DebugEngine is a collection of utilities related to debug stuff (stack trace, CPU registers snapshot, debug info, ...). Basically, I started to write a commercial error log plugin for Delphi, then I noticed that my internal framework got bigger and bigger. So I decided to share it with the community in hope it will be useful.
DebugEngine has a lot of functions and utilities allowing to you to do for example:
- Support x86 and x64 architecture.
- Accessing Delphi debug info.
- Getting address of symbol from its name.
- Delphi map parsing and map converter to binary format.
- Remove and restore Delphi debug info from PE file.
- Smart stack trace.
- Try blocks trace.
- Updatting resource of Delphi app even if it was linked with debug info.
- Inserting custom debug info into PE file.
- CPU registers snapshot.
- Accessing vector registers.
- Disasm and comment function with Debug info.
- Enumerating exception handlers.
- Delphi exception stack trace hook.
- Delphi string detection.
- PE utils.
- Disasm utils.
- ...
Please refer to the Wiki page and see Demo included with the library. Note that all public functions are documented (XML doc). However if you don't understand something, please feel free to contact me.