Skyrim
0 of 0

File information

Last updated

Original upload

Created by

Shadow147

Uploaded by

Shadow147

Virus scan

Safe to use

About this mod

This SKSE plugin overrides the exception handler in Skyrim and produces a stack dump when a crash occurs. If you're lucky, the stack contains a hint that allows you to find and fix the cause.

Permissions and credits
Changelogs
This plugin was inspired by the .Net Script Framework for Skyrim SE.

I finally (10 years after Skyrim's launch?) got tired of not having any idea why my game crashed. At first I was just going to more or less copy code from the .Net Script Framework to put together a quick plugin to help debug a CTD issue I was having. However, I quite quickly noticed that it was more complicated than I anticipated. I ended up only using the same method they did for catching the actual exception, the rest I had to do myself.

The output is similar to this:
Crash Log, version 2
Code: 0xc0000005.
Address: TESV.exe+0x0089b672.
Memory at <unknown>+0x00000028 could not be read.

Stack trace:

Frame: 0, FP: TESV.exe+0x0089b672
Param 0: <unknown>+0x46511b20 (void*)
Param 1: TESV.exe+0x00873386 (void*)
Param 2: <unknown>+0x46511b20 (void*)
Param 3: <unknown>+0x46511b20 (void*)
RET: TESV.exe+0x00873358

Frame: 1, FP: TESV.exe+0x00873358
Param 0: <unknown>+0x46511b20 (void*)
Param 1: <unknown>+0x46511b20 (void*)
Param 2: 0x00000000 (null)
Param 3: 0x00000000 (null)
RET: TESV.exe+0x00873386

Frame: 2, FP: TESV.exe+0x00873386
Param 0: TESV.exe+0x01798014 (void*)
Param 1: <unknown>+0x48432e5c (char*) "textures\effects\FXwaterTile01.dds"
Param 2: TESV.exe+0x01797ff8 (void*)
Param 3: <unknown>+0x5db20e98 (void*)
RET: TESV.exe+0x00701712

Frame: 3, FP: TESV.exe+0x00701712
Param 0: 0x00000000 (null)
Param 1: 0x00000000 (null)
Param 2: 0x00000000 (null)
Param 3: 0x00000000 (null)
RET: <unknown>+0x00000000

SSE VERSION

https://www.nexusmods.com/skyrimspecialedition/mods/51230

LOGS


Crash logs are saved in the game directory (next to TESV.exe). The plugin log file (crash_log.log) is also located in the same directory.

Crash log file name example: crash_2021_03_09_12_22_1.log (crash_<date>_<counter>.log)

Note that crash logs may contain personal or sensitive information.

HOW I SOLVED MY CTD

Assuming you get a stack dump similar to the one in the example above, you can make an educated guess that the game might have been doing something with the texture "textures\effects\FXwaterTile01.dds".

  1. The first thing I did was look for a mod in MO2 that might have altered this file. I found none.
  2. Next I loaded all bsa files in BSA Browser and filtered for "FXwaterTile01.dds". Only match I found was in the official Skyrim bsa.
  3. I tried attaching a debugger while the game was crashing and set a breakpoint on the instruction that crashed the game. First hit was just after ENB loads its dx dll files.
  4. I disabled ENB. This didn't solve it.
  5. I fired up Notepad++ and set it to search all mods in MO2's "mods" folder (including only esp, esm and nif files). I searched for the texture name. When it was done I had a list of potential mods containing nifs that reference this texture: Realistic Water, DynDOLOD, ...
  6. I disabled all mods that had references and finally singled it down to one mod and the problem was solved.

WILL THIS SOLVE YOUR CTD?


I hope it will. The example above shows that it can be a bit misleading sometimes. In some cases it's immediately obvious what the problem is.

SOURCE CODE

Moved to github: https://github.com/shadow147-github/skse_crash_log