收到来自随机客户的转储文件,运行调试会话以查看崩溃,您经常会发现它位于 MS 或其他第三方库中。下一个问题是您可能不了解 PC 设置,以至于无法确保您拥有实际可用的模块。
例如,我目前正试图为 ntdll.dll (5.01.2600.5512) 加载符号。在 MSVC 2005 中,模块列表窗口中的路径列在完整路径文件名之前显示 *,并且拒绝加载我为 XP/SP1/SP1a/SP2/SP3 下载的符号。
我有符号服务器设置,可以从 Internet 下载并存储在本地缓存中,这对于我的 PC 上的模块似乎运行良好。使用与方法等效的 GUI
设置 _NT_SYMBOL_PATH=srv*d:\SymbolCache*\\server1\Third-Party-PDB;srv*d:\SymbolCache*\\server2\Windows\Symbols*http://msdl.microsoft.com/download/symbols
也许我有错误的符号,但由于没有下载新符号,我下一步该去哪里?我是否必须联系客户并询问他们安装了哪些 SP 以及任何其他补丁?我是否必须安装那台机器,然后使用 dmp 文件运行调试器以获取我需要的符号?