Volleynerd Knowledge Base

Tuesday, July 29, 2003


CrashFinder

John Robbins wrote a CrashFinder app a long time ago (04/98) that shows how to convert a hex address given in a GPF crash dialog to a line of source code in a release build.

Original MSDN article is here

Code for this article is here

Capture of article is here

Short summary:
  • set release builds to generate debug info (creates PDB file)
  • link settings, debug info = Microsoft Format
  • keep the generated PDBs in a safe place somewhere with the shipping binaries
  • ALWAYS rebase all your shipping DLLs

Note: no need to rebase EXE's since they're the first thing to load in a given process, so your guaranteed it is a unique address. (Addresses are logical addresses and are unique within a given process.) There is a linker setting for base address for the EXE, but not necessary. Quote from MSDN help: You should not pass your .EXE file to Rebase. It is the first thing to be loaded, so there is no chance that something else can already be loaded at its default load address.

Now use Crash Finder app, point it to the list of DLLs with their associated PDBs, type in the hex address of the crash, VOILA -- it'll (hopefully) show you the crash line of code!!

Finally, some cool links from John Robbins corner of the world:



Comments: Post a Comment

Home