【问题标题】:How to use Windows Symbol Packages with Visual Studio 2008?如何在 Visual Studio 2008 中使用 Windows 符号包?
【发布时间】:2010-10-08 01:39:21
【问题描述】:

在微软我可以下载the Windows Symbol Packages for XP, Vista, Server, even Windows 7

我的问题是:如何在 Visual Studio 中使用这些符号?在 VS 2008 中,我可以在哪里添加下载和提取的符号,以便我可以调试到 Windows 本身?

我要达到的目的:我要调试_beginthreadex/endthreadex,看到why/where some code is losing handles

我知道我可以set visual studio 2008 to download source files,但看起来这仅适用于 .net 框架源?

【问题讨论】:

    标签: windows visual-studio visual-studio-2008 debugging symbols


    【解决方案1】:

    符号包仅适用于您当前运行的 Windows 版本 - 它们安装在 C:\Windows\Symbols 中,您一次只能安装一个。

    改用符号服务器。

    符号服务器

    在 Visual Studio 中,转到:Tools/Options/Debugging/Symbols。将“http://msdl.microsoft.com/download/symbols”添加到Symbol file (.pdb) locations 列表中。您需要在Cache symbols from symbol servers to this directory: 中输入缓存目录。我使用 C:\WebSymbols。尽管您可以定期清理目录,但您将获得足够的空间(我的空间大约为 600Mb)。

    这会在最初减慢您的调试会话,直到您通常需要的所有符号都已缓存。

    或者,您可以通过将_NT_SYMBOL_PATH 环境变量设置为类似这样的方式为所有 Windows 调试器全局设置:SRV*C:\WebSymbols*http://msdl.microsoft.com/download/symbols

    您还可以(作为构建过程的一部分)使用 SYMSTORE.EXE(来自Debugging Tools for Windows)收集您自己的 .PDB 文件,并将该目录添加到此列表中。

    源服务器

    .PDB 文件可以具有对构建它们的源文件的(可选)引用。正如您所提到的,您可以使用此功能下载 .NET 源代码,但它也适用于 C++ 源文件。我们使用原始源文件的 SVN 路径和修订版本来注释我们的 .PDB 文件。当我们使用“转到源代码”时,Visual Studio 使用 SVN 下载构建 EXE 的确切源代码。这真的很酷。

    要注释您的 PDB 文件,您需要 Windows 调试工具中 srcsrv 目录中的工具。

    【讨论】:

    • 酷!我以为这些符号是 WinDbg 和 cdb 专用的。
    • 太棒了!我设置了这个,现在我得到了符号 - 可惜我不能真正通过源代码,但至少现在是这样。
    【解决方案2】:

    如果您想“调试到 Windows 本身”,您可能希望能够附加到已经运行的进程,这是 MSVC++ 的 Express 版本无法做到的。因此,如果您使用的是 Express 版本(或者即使您不是),我建议您下载 Debugging Tools for Windows。这提供了windbgcdb 调试器,它们比MSVC++ 附带的调试器更不友好,但更强大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      相关资源
      最近更新 更多