Debugging Tools for Windows |
在调试Windows内核或运行在Windows上的驱动或应用程序时,需要访问适合的符号文件。
如果在调试器运行时能访问internet,可能想适用Microsoft的公有符号存储。可以通过简单的使用一次.symfix (Set Symbol Store Path)命令来连接。完整的详细信息,查看Microsoft公共符号。
如果想手动安装符号,至关重要的是注意这个基本规则: 主控机上的符号文件必须和目标机上安装的Windows系统版本匹配。如果要在Windows 2000主控机上对Windows XP目标进行内核调试,需要在Windows 2000系统上安装Windows XP符号文件。如果要在同一台机器上对目标程序进行用户模式调试,需要安装该机器上使用的Windows系统匹配的符号文件。如果在分析内存转储文件,在调试计算机上安装的符号文件要和生成dump文件的操作系统版本匹配,而不是和进行调试会话的机器上的操作系统匹配。
注意 如果想使用主控机来调试数个不同的目标机,可能需要不止一个Windows版本的符号文件。这时要注意把每类符号安装到不同的目录中。
如果在一台连接到网络的Windows计算机上进行调试,把各种不同版本的符号安装到一台网络服务器上是很有用的。Microsoft调试器可以使用网络路径(\\server\share\dir)作为符号目录路径。这避免了在网络上的每台机器上安装符号。
安装在已崩溃的目标机上的符号文件,对主控机上的调试器是无用的。
安装Windows XP或之后系统的符号文件
如果要在单个目录树中保存符号, 符号文件的安装顺序应该和操作系统文件的安装顺序一样:
按正确顺序安装符号文件但是,好的安装应该把每个Service Pack 和热补丁的文件安装到不同的目录树下,并且将所有这些目录都加入符号搜索路径。调试器会自己寻找合适的符号。(由于符号文件有日期和时间戳,所以调试器知道哪个才是最新的。)查看符号路径获取详细信息。
如果要调试用户模式程序,需要安装该程序的符号文件。
在拥有程序的符号但是没有Windows符号时也可以进行调试。但是,结果会有更多限制。仍然可以单步执行程序代码,但是任何调试器需要分析内核的操作(例如获得调用堆栈)的操作都可能失败。