“Failed to load data access DLL, 0x80004005”这个问题可能有很多种原因,本文描述的一种情况就是客户的站点的.Net Framework的版本和本地调试机的版本不一致,以及解决方案。
废话少说,直接开工。(蓝色粗体命令为解决问题的命令)
# Windbg加载dump文件后的一些文件信息
Microsoft (R) Windows Debugger Version 6.3.9600.17298 X86 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\dump\EMSClientApp (2).DMP] User Mini Dump File with Full Memory: Only application data is available Symbol search path is: *** Invalid *** **************************************************************************** * Symbol loading may be unreliable without a symbol search path. * * Use .symfix to have the debugger choose a symbol path. * * After setting your symbol path, use .reload to refresh symbol locations. * **************************************************************************** Executable search path is: Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x86 compatible Product: WinNt, suite: SingleUserTS Machine Name: Debug session time: Tue Sep 1 01:37:14.000 2015 (UTC + 8:00) System Uptime: 3 days 8:54:07.007 Process Uptime: 0 days 0:24:25.000 ................................................................ ................................................................ ............... Loading unloaded module list ...................................................... *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll - eax=000024f9 ebx=0017d7dc ecx=00000200 edx=00000104 esi=00000002 edi=00000000 eip=774c70b4 esp=0017d78c ebp=0017d828 iopl=0 nv up ei pl zr na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246 ntdll!KiFastSystemCallRet: 774c70b4 c3 ret |
# 加载debug extension
0:000> .loadby sos clr |
# 看一下调用栈,轻车熟路.
0:000> !clrstack ********************************************************************* * Symbols can not be loaded because symbol path is not initialized. * * * * The Symbol Path can be set by: * * using the _NT_SYMBOL_PATH environment variable. * * using the -y <symbol_path> argument when starting the debugger. * * using .sympath and .sympath+ * ********************************************************************* |