Skip to content
Michael Curran edited this page Aug 10, 2016 · 9 revisions

To debug a crash in NVDA, or another application while NVDA was running, you will require a crash dump from the application that crashed.

For information on how to produce and find crash dumps, please look at the Log Files and Crash dumps article.

Debugging with WinDBG

  1. Ensure you have windbg (You can install this by choosing debugging tools in the VS 2015 Community installer)
  2. Ensure Windbg's windows and menubar are usable with the keyboard (only needs to be done once): 2.1. Open Windbg from the start menu 2.2. Choose Window -> MDI Emulation 2.3. Say Yes. 2.4. Choose File -> Save Workspace. 2.5. Close windbg
  3. Set your symbol paths (Only needs to be done once, though may depend on the project): 3.1. Open Windbg 3.2. Choose File -> Symbol file Paths... 3.3. Type in the addresses for both the Microsoft Symbol server and NV Access symbol server. Example: srv*http://msdl.microsoft.com/download/symbols;srv*http://www.nvaccess.org/files/nvda/symbols 3.4. Press Okay. 3.5. Choose File -> Save Workspace. 3.6. Close Windbg
  4. Open the crash dump in windbg, either from Open With in File Explorer, or File -> Open Crash dump from within Windbg.
  5. Analyze the crash, using commands such as: 5.1. Analyze (useful general info about the crash): !analyze -v, 5.2. Show a clean call stack where the crash occured: .ecxr; kc 5.3. Show a call stack with source path and line numbers where possible: .ecxr; kp

Extra notes:

  • Some Windows insider builds do not have their symbols uploaded to the Microsoft symbol server. You may need to download a specific symbols archive from Microsoft if available.
  • Symbols for NVDA snapshots and releases are available on the NV Access symbol server. However, if running from source, or a custom build, then you will need to point Windbg to the PDB files produced by that build.
Clone this wiki locally