wiki:DebuggingOnWindows

Version 3 (modified by historic_bruno, 14 months ago) (diff)

Fixes redirected link to debugging tools

If the game crashes or freezes when running on Windows, you can help us to debug the problem. If you have Visual C++ installed then you can use its debugger. Otherwise you should try these instructions to run the free WinDbg? tool:

  • Install the Debugging Tools for Windows. (In the Windows SDK installer, you can disable everything except the first "Debugging Tools for Windows" option.)
  • Run WinDbg from the Start menu (in "Debugging Tools for Windows", or if you are on 64-bit Windows then "Debugging Tools for Windows (x64)").
  • "File" menu -> "Open Executable".
  • Browse to the location where you installed the game, and open pyrogenesis.exe in the binaries\system folder.
  • If you want to debug the Atlas editor, put "-editor" in the "Arguments" box before clicking "Open".
  • If it asks to "Save information for workspace", say yes.
  • Enter the following commands: (the last step may take several minutes the first time you do this - wait until the "*BUSY*" prompt goes away)
    .symfix
    .reload /f
    
  • "Debug" menu -> "Go".
  • If you are on 64-bit Windows: The game may not start immediately, and the WinDbg window may say
    (690.8c8): WOW64 breakpoint - code 4000001f (first chance)
    First chance exceptions are reported before any exception handling.
    This exception may be expected and handled.
    ntdll32!LdrpDoDebuggerBreak+0x2c:
    770b0f3b cc              int     3
    0:000:x86>
    
    In that case you should do "Debug" menu -> "Go" a second time, and then the game should start up.
  • You may want to switch the game from fullscreen to windowed mode (press alt+enter while running it) to make it easier to see to the WinDbg window.
  • When the game has failed (frozen or brought up an error message), switch to the WinDbg window and "Debug" -> "Break".
  • If you are on 64-bit Windows: Enter the command
    !wow64exts.sw
    
  • Enter the command:
    ~* kp
    
  • If it shows a "*BUSY*" prompt, wait for that to go away (might take several minutes the first time you do this).
  • Copy-and-paste the output into some kind of pastebin service like this and post the link to it.