The purpose of ODBCTrace is to trace calls into the ODBC API on a Win32 machine,
while offering a reasonable user interface and more elaborated options than the
odbctrac.dll shipped by Microsoft®.
- Permits you to enable/disable tracing for every individual function so you can trade
level of detail against execution time overhead, and reduce undesired output noise.
- Upon statement execution, dumps the entire statement including values of bound parameters.
- Optionally dumps values of bound columns after fetch/update/refresh.
- Is thread safe (I think).
- Tells you ID of calling thread.
- Tells you nesting levels of calls within calling thread (particularly helpful with cursor library).
- Tells you approximate execution time of each call.
- Sends output to either a file and/or a RichEdit based log window.
- Uses C++ smart pointer for thread local storage access.
- Pops up Options dialog from DLL_PROCESS_ATTACH by creating a satellite process.
- Attaches a TabRuler to a RichEdit control without subclassing.
- Doesn't link to MSVCRT.
- Uses IAT/EAT patching to hook into process termination.
- Uses EAT/IAT patching to catch debug strings.
Don't miss to read
Doga Arinir's article about ODBC tracing,
which has been the starting point for this tool.