While .NET gets all the press, love and attention, hard core C++ native development still pays the bills for many of us. As it’s just a few days before the mass geekfest which will be all about everything .NET I thought it was time to release a new CrashFinder! Grab the latest version here with all its 32-bit and 64-bit goodness. I’ve fixed all the bugs everyone’s reported so this is the one you’ll want to use.
As Visual Studio 2008 has been out for over a year, and I needed to update the symbol engine code to use later versions of DBGHELP.DLL, I’ve had to drop support for previous versions of Visual Studio. If you do need to use an earlier version of the compiler, you’ll need to set up the latest Platform SDK and use the headers and libs from it. If you don’t want to destabilize your development environment, you can probably just get by with copying DBGHELP.H and DBGHELP.LIB and setting up your project to include and link against them respectively, as that’s all that you need.
Speaking of DBGHELP, I was asked a good question the other day: if I want to use tools like CrashFinder, or do my own symbol loading, how to I use a symbol server? If you read the docs for SymInitialize, it says if you set the second parameter, the symbol path, to NULL, DBGHELP.DLL will use _NT_SYMBOL_PATH to find symbols. The person asking the question was deploying the latest DBGHELP.DLL from WinDBG with their application but they never saw symbols from the Microsoft symbol servers in their load application. To get the full symbol server support, you’ll also need to drop SYMSRV.DLL in the directory where you install DBGHELP.DLL. The Debugging Tools for Windows package (AKA WinDBG) includes the most recent DBGHELP.DLL and SYMSRV.DLL. The great news is that both are fully redistributable with your applications. If you need to prove this to your company’s lawyers, see REDIST.TXT in the Debugging Tools for Windows directory.
Most of you reading this don’t remember the original article for which I wrote CrashFinder, which was over ten years ago in April 1998 Microsoft Systems Journal. (For some reason lately I have felt compelled to scream “Get off my grass!” and take naps.) I’ve been deeply honored over the years for everyone who’s told me they found it useful. Thank you.
As always, if you find any bugs or have feature requests either write in the comments or email me (john at this company’s domain).