(dum(b)ug) is a full open source Windows debugger core, implemented as C++ class architecture for instant debugger creation in the Win32 environment. It supports a number of features, including:

ltrace for Windows

ltrace for Windows - here named "(dum(b)ug) tracer" is a library call tracer supporting the logging of calls to library or program functions to automatically identify function arguments and results, hereby aiding quick auditing of closed source code for the use of insecure functions. This is a example implementation for the (dum(b)ug) core.

How it works

The (dum(b)ug) tracer works by specifying the function prototypes that are supposed to be traced and then attaching the tracer to the process in question or loading the process. The function prototypes are specified in a trace definition file. Example:
int printf( char *, char *);
"haxor" == int sprintf( [out] char *buffer, [in] fmtchar *format);
This example illustrates a number of concepts (dum(b)ug) tracer uses:
The following types are supported:

Getting the stuff

Full (dum(b)ug) and ltrace source: dumbugVegasRelease.zip
ltrace for Windows Executable only: dumbug_bin_0.3.zip

Blackhat Las Vegas 2004 speech: Bugs.pdf
DEF CON 12 speech: Shutup.pdf