无法获取转储的调试符号

Cannot obtain debugging symbols for dumps

本文关键字:调试 符号 转储 获取      更新时间:2023-10-16

尝试在windbg/VS中调试迷你转储。无法获取9.0.30729.8387版本的msvcr90的符号。试图做.symfix。如果我为我的应用程序符号设置同情,我可以得到我的代码的一部分调用堆栈,但不是msvcr。如果我使用.symfix,我可以部分地从c运行时获得几个调用,但是,显然,不是从我的代码。

!sym noisy without .symfix:

SYMSRV:  \eserversymstoremsmsvcr90.dll51EA1BBDa3000msvcr90.dll not found
SYMSRV:  \eserversymstoremsmsvcr90.dll51EA1BBDa3000msvcr90.dll not found
SYMSRV:  \eserversymstoremsmsvcr90.dll51EA1BBDa3000msvcr90.dll not found
SYMSRV:  http://msdl.microsoft.com/download/symbols/msvcr90.dll/51EA1BBDa3000/msvcr90.dll not found
DBGHELP: C:Program FilesDebugging Tools for Windows (x64)msvcr90.dll - file not found
SYMSRV:  \eserversymstoremsmsvcr90.dll51EA1BBDa3000msvcr90.dll not found
SYMSRV:  \eserversymstoremsmsvcr90.dll51EA1BBDa3000msvcr90.dll not found
SYMSRV:  \eserversymstoremsmsvcr90.dll51EA1BBDa3000msvcr90.dll not found
SYMSRV:  http://msdl.microsoft.com/download/symbols/msvcr90.dll/51EA1BBDa3000/msvcr90.dll not found
DBGENG:  C:WindowsWinSxSamd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_08e793bfa83a89b5msvcr90.dll - Couldn't map image from disk.
Unable to load image C:WindowsWinSxSamd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_08e793bfa83a89b5msvcr90.dll, Win32 error 0n2
DBGENG:  msvcr90.dll - Partial symbol image load missing image info
DBGHELP: Module is not fully loaded into memory.
DBGHELP: Searching for symbols using debugger-provided data.
*** WARNING: Unable to verify timestamp for msvcr90.dll

我能看到的最后一件事是msvcr90!_freefls的调用。在所有的方法中,我只能得到调用堆栈的一部分,我需要全部。是否有办法获得正确的符号?9.0.30729.6871的符号也有类似的问题。

客户端操作系统:Windows Server 2012 (build 9200) 64位,Windows 7 (build 7600) 64位,Windows Vista (build 6000) 64位,Windows Server 2008 R2 (build 7600) 64位。

您可以设置多个符号路径,以便调试器可以从多个位置获取符号。

.Symfix

是运行的第一个命令。然后使用

.sympathy+ c:<My_symbols>

上面的另一个问题是

Couldn't map image from disk.

来源于

DBGENG:  C:WindowsWinSxSamd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_08e793bfa83a89b5msvcr90.dll - Couldn't map image from disk.
Unable to load image C:WindowsWinSxSamd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_08e793bfa83a89b5msvcr90.dll, Win32 error 0n2
DBGENG:  msvcr90.dll - Partial symbol image load missing image info
DBGHELP: Module is not fully loaded into memory.

我会再复制一个文件,并将你的符号路径指向那个文件,看看调试器是否可以从那里加载它。

解决了客户端操作系统附带调试器的再现问题。