Windbg符号错误

Windbg符号错误,windbg,Windbg,我正在尝试使用WinDbg调试应用程序。服务器无法访问internet,因此我无法使用Microsoft Symbol服务器。我继续下载了Server2012 R2零售版的符号。将它们移到服务器上,并安装到C:\Symbols 当我尝试运行调试器时,我得到以下输出 CommandLine: C:\actionsync\ActionSync\ActionSync.exe ************* Symbol Path validation summary ************** Res

我正在尝试使用WinDbg调试应用程序。服务器无法访问internet,因此我无法使用Microsoft Symbol服务器。我继续下载了Server2012 R2零售版的符号。将它们移到服务器上,并安装到C:\Symbols

当我尝试运行调试器时,我得到以下输出

CommandLine: C:\actionsync\ActionSync\ActionSync.exe

************* Symbol Path validation summary **************
Response                         Time (ms)     Location 
Deferred                                       srv*
DBGHELP: Symbol Search Path: .sympath srv*c:\symbols*

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       .sympath srv*c:\Symbols*
DBGHELP: Symbol Search Path: .sympath srv*c:\symbols*
DBGHELP: Symbol Search Path: .sympath srv*c:\symbols*
Symbol search path is: .sympath srv*c:\Symbols*
Executable search path is: srv*
DBGHELP: SharedUserData - virtual symbol module
ModLoad: 00ec0000 00ecc000   ActionSync.exe
ModLoad: 77120000 7728f000   ntdll.dll
ModLoad: 6fc30000 6fc86000   C:\Windows\SysWOW64\MSCOREE.DLL
ModLoad: 74de0000 74f20000   C:\Windows\SysWOW64\KERNEL32.dll
ModLoad: 74f20000 74ff7000   C:\Windows\SysWOW64\KERNELBASE.dll
(1054.478): Break instruction exception - code 80000003 (first chance)
DBGHELP: Invalid path: '.sympath srv*c:\symbols*'
DBGHELP: C:\Windows\SYSTEM32\wntdll.pdb - file not found
DBGHELP: wntdll.pdb - file not found
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll - 
DBGHELP: ntdll - export symbols
eax=00000000 ebx=00000000 ecx=7fdc0000 edx=00000000 esi=7ee16000 edi=00000000
eip=771d3c7d esp=0104f2f4 ebp=0104f320 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!LdrInitShimEngineDynamic+0x6dd:
771d3c7d cc              int     3
我对使用WinDbg是完全陌生的。此外,我无法在此计算机上安装VS

据我所知,我已正确设置了所有内容,但我仍然无法调试此应用程序

任何帮助都将不胜感激


编辑1:

我根据Thomas Weller的评论更新了符号路径

这是输出

0:000> .sympath
Symbol search path is: .sympath srv*c:\Symbols*
Expanded Symbol search path is: .sympath srv*c:\symbols*

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       .sympath srv*c:\Symbols*
Error: Change all symbol paths attempts to access '.sympath c:\symbols' failed: 0x7b - The filename, directory name, or volume label syntax is incorrect.

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Error                            16            .sympath c:\symbols
DBGHELP: Symbol Search Path: .sympath c:\symbols
DBGHELP: Symbol Search Path: .sympath c:\symbols
0:000> .reload
Reloading current modules
.....
DBGHELP: Invalid path: '.sympath c:\symbols'
DBGHELP: C:\Windows\SYSTEM32\wntdll.pdb - file not found
DBGHELP: wntdll.pdb - file not found
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll - 
DBGHELP: ntdll - export symbols

************* Symbol Loading Error Summary **************
Module name            Error
ntdll                  All symbol search paths were invalid
            Please check your symbol search path.


The following location did not respond and were excluded during symbol loading:
.sympath c:\symbols

编辑2:

因此,sympath似乎区分大小写

我更新了sympath
C:\Symbols

这是输出

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             c:\Symbols
DBGHELP: Symbol Search Path: c:\symbols
DBGHELP: Symbol Search Path: c:\symbols
0:000> .reload
Reloading current modules
.....
DBGHELP: c:\symbols\wntdll.pdb - file not found
DBGHELP: c:\symbols\dll\wntdll.pdb - file not found
DBGHELP: c:\symbols\symbols\dll\wntdll.pdb - file not found
DBGHELP: C:\Windows\SYSTEM32\wntdll.pdb - file not found
DBGHELP: wntdll.pdb - file not found
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll - 
DBGHELP: ntdll - export symbols

************* Symbol Loading Error Summary **************
Module name            Error
ntdll                  PDB not found : c:\symbols\symbols\dll\wntdll.pdb
            Unable to locate the .pdb file in this location

对于这两种解决方案,您都需要WinDbg的副本(不一定是安装)。您可以在WinDbg文件夹中找到
symchk

特定转储/特定调试会话的解决方案
  • 在正在调试的计算机上,使用
    .dump
    创建崩溃转储文件。如果已经有崩溃转储文件,请跳过此步骤

  • 在命令提示下,创建清单文件,即包含要下载的符号信息的文件

    symchk /id <dumpfile>.dmp /om D:\symbols.manifest
    
    在命令提示下

    /im
    用于输入=清单

    /od
    用于输出详细信息(如详细信息)

  • 在不接入互联网的情况下将符号传输回机器。将它们复制到新文件夹中,例如
    c:\downloatedsymbols
    ,而不是
    c:\symbols
    。不要使用现有符号路径,因为n层布局可能不匹配

  • 在WinDbg中打开崩溃转储

  • 固定符号

    .sympath C:\downloadedsymbols
    
    也许

    .reload /f
    
  • 在没有Internet的情况下检索机器所有符号的解决方案 注意:这个过程可能需要很长时间,因为它可能会下载数千个符号

  • 在命令提示下,运行

    symchk /r /if %windir% /om D:\windir.manifest
    
    /r
    用于递归

    /如果
    用于输入=文件

    /om
    用于输出=清单

  • 将清单文件传输到具有Internet访问权限的其他计算机上

  • 在Internet计算机上,运行

    symchk /im X:\windir.manifest /s srv*X:\winsymbols\*http://msdl.microsoft.com/download/symbols /od
    
    /im
    用于输入=清单

    /od
    用于输出详细信息(如详细信息)

  • 在不接入互联网的情况下将符号传输回机器。将它们复制到新文件夹中,例如
    c:\winsymbols
    ,而不是
    c:\symbols
    。不要使用现有符号路径,因为n层布局可能不匹配

  • 将符号与

    .sympath C:\winsymbols
    .reload
    

  • 使用
    .sympath c:\symbols
    而不使用
    srv*
    @ThomasWeller查看我的新输出。Windows不区分大小写。在我看来,您似乎通过一些菜单设置了符号路径。如果通过菜单执行,请不要使用
    .sympath
    ,因为
    .sympath
    是命令。如果在命令窗口中键入符号,则需要
    .sympath
    。好的,这样您就有了一台带有Internet的机器,您可以下载符号,然后可以通过USB或其他方式将符号传输到您调试的机器上。对吗?如果是这样的话,你的问题有一个解决方案。我确实把它们下载到了一台可以上网的机器上。我从这里得到的:。我下载了服务器2012 R2。然后我将msi复制到服务器并运行它。我想我应该下载零售版。我现在正在这样做。当尝试在命令行上运行步骤2时,
    'symchk'未被识别为内部或外部命令…
    它位于WinDbg文件夹中。Thomas说,这不是Windows命令,它附带了WindowsNice的调试工具。我不知道symchk能做到。我打算建议他在另一台机器上调试转储文件,但我知道这并不总是可能的。
    .sympath C:\winsymbols
    .reload