Recent Changes - Search:

PmWiki

pmwiki.org

edit SideBar

DebuggingWindowsCrashDumps

Debugging Windows crash or hang dumps (as produced by ADPlus from the Debugging Tools for Windows) is hard because the official releases don't have debugging symbols. However, you can generate a limited amount of debugging information in an external file called a PDB (Program Database) file.

  • Download end extract the corresponding source release.
  • Open mswin32/nmap.sln in Visual C++.
  • Switch to "Release" mode.
  • Right-click on the "nmap" project and click "Properties".
  • Under the "Linker" node, in "Debugging", change "Generate Debug Info" to "Yes (/DEBUG)". You have to do this even though the next line may say "Generate Program Database File: .\Release/nmap.pdb"; that seems not to work without /DEBUG.
  • Build the solution.
  • You now have a file Release\nmap.pdb. Copy the dump file into this directory.
  • Start up WinDbg, then "File" → "Symbol File Path..." and select the directory where the binary, dump, and PDB are.
  • "File" → "Open Crash Dump..." and open the dump. If you see *** ERROR: Module load completed but symbols could not be loaded for nmap.exe then you did something wrong.
  • "View" → "Disassembly" and "View" → "Call Stack".
  • Now hopefully you can identify some symbols that give you a clue as to where the crash or hang occurred.
Edit - History - Print - Recent Changes - Search
Page last modified on March 17, 2008, at 09:51 AM