在Microsoft,我可以下载适用于XP,Vista,Server甚至Windows 7的Windows Symbol Packages.
我的问题是:如何在Visual Studio中使用这些符号?在VS 2008中我可以添加下载和提取的符号,所以我可以调试到Windows本身吗?
我想要实现的目标:我想调试_beginthreadex/endthreadex,看看为什么/某些代码丢失处理的原因.
我知道我可以设置visual studio 2008来下载源文件,但它看起来只适用于.net框架源代码?
符号包仅适用于您当前运行的Windows版本 - 它们安装在C:\ Windows\Symbols中,并且您一次只能安装一个.
请改用Symbol Server.
在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).
这将最初减慢您的调试会话,直到您通常需要的所有符号都被缓存.
另外,您也可以为所有的Windows调试器通过设置全局设置这个_NT_SYMBOL_PATH
环境变量是这样的:SRV*C:\WebSymbols*http://msdl.microsoft.com/download/symbols
.
您还可以(作为构建过程的一部分)使用SYMSTORE.EXE(来自Windows的调试工具)收集您自己的.PDB文件,并将该目录添加到此列表中.
.PDB文件可以对它们构建的源文件进行(可选)引用.如您所述,您可以使用此功能下载.NET源代码,但它也适用于C++源文件.我们使用SVN路径和原始源文件的修订来注释我们的.PDB文件.当我们使用"Go to Source"时,Visual Studio使用SVN下载构建EXE的确切源代码.这真的很酷.
要注释PDB文件,您需要srcsrv
Windows调试工具目录中的工具.