Skip to content

Creating crash dumps with Windbg

IryokuChevalier edited this page May 25, 2014 · 4 revisions

Crash Dumps

With us working hard on Windower v4, we're trying to get to the route of the various bugs that have been carried over from 3.4 and the new bugs created with the new systems. The hardest part of fixing these bugs is finding out why they happen, and exactly what happened. The best way to people to help us with this is through Crash Dumps.

In this we'll cover how to download and install WinDbg, how to attach it to your game, and how to create a minidump for us.

Downloading and Installing WinDbg

WinDbg is the debugger offered by Microsoft with the Windows SDK. You only need to install the Debugging Tools for Windows

Running WinDbg

On Windows XP, Vista and 7

You will find WinDbg (X86) in your start menu under All Programs > Debugging Tools for Windows. If you are on Vista or 7 you will then need to run this as an Administrator. To do this right click the shortcut, click "Run as administrator", and accept the UAC prompt.

On Windows 8

You will find it on your start-screen labeled as WinDbg (X86), when you have found it, right click it, and click the "Run as administrator" option. You may receive a UAC prompt if its enabled to run as administrator, click yes and it will open.

If WinDbg is not running as an administrator, you will get an error when trying to attach to PlayOnline, so it is vital you do it.

Attaching WinDbg to POL

First, start FFXI through launcher.exe (the usual way to start POL with Windower).

Then go back to WinDbg and go to File > Attach to a Process. Select pol.exe from the list and hit OK.

At this point POL will hang. This is completely normal. In WinDbg hit F5 to let POL continue, try not to take too long as it can cause you to disconnect.

If you see "BUSY Debuggee is running..." at the bottom of the command window in WinDbg, POL is running. Whenever you don't see that, or POL hangs, return to WinDbg and hit F5 again. This might happen a few times when POL loads DLLs, it's nothing to be alarmed about, just skip through them. The window will read something like this:

(71f0.7068): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files (x86)\Windower 3.4\plugins\spellcast.dll - 
spellcast!CreateInstance+0x7f79d:
00000000`1e5c44dd 8908            mov     dword ptr [eax],ecx ds:002b:00000000`00000000=????????

Hitting the Crash

When you reach the point where POL or FFXI normally crashes, it will now hang, and you should see something like the following in the command window:

(71f0.72a0): C++ EH exception - code e06d7363 (first chance)
(71f0.72a0): C++ EH exception - code e06d7363 (!!! second chance !!!)
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for KERNEL32.dll - 
KERNEL32!RaiseException+0x59:
00000000`7734f35f c9              leave
*** WARNING: Unable to verify checksum for Hook.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for Hook.dll - 
*** WARNING: Unable to verify checksum for C:\Program Files (x86)\PlayOnline\SquareEnix\FINAL FANTASY XI\FFXiMain.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files (x86)\PlayOnline\SquareEnix\FINAL FANTASY XI\FFXiMain.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\SysWOW64\nvd3dum.dll -

Once the game has crashed and WinDbg has shown the error popped up, you can now create a dump.

Creating your Crash dump

Now that the game has crashed out, you can create the dump. To do this you will want to type a command in the command box, where "Debuggee is running" used to display. (It should now be a white box instead of saying Debuggee is running if you crashed)

The command you want to type is .dump /m C:\filename.dmp. That is a period before the word dump (very important!) Save the file anywhere you choose, and give it a name that has some meaning like "spellcast_cure3crash.dmp".

Then, upload the file in some way, so the developers can get ahold of it, use a free hosting site if you need, just don't use MediaFire, it doesn't work for some.

Once you have your dump uploaded, create a new issue on the tracker, unless the issue already exists, and drop a link to the file you uploaded.

Detaching WinDbg

Whenever you want to detach WinDbg from POL or FFXI, just go to Debug > Detach Debuggee. If POL or FFXI had crashed, it will then crash as usual. If it was running normally, it will continue running normally.

If POL is running normal and hasn't crashed yet, you will need to go to Debug > Break first before Detaching.