WEB开发网
开发学院软件开发VC 符号文件——Windows 应用程序调试必备 阅读

符号文件——Windows 应用程序调试必备

 2007-03-17 21:25:05 来源:WEB开发网   
核心提示: 选择“配置属性”树型节点中的“链接器”==〉“命令行”;在“附加选项(D)”编辑框中添加如下指令:/opt:ref,icf;按“确定”退出;重新生成(Rebuild)项目

选择“配置属性”树型节点中的“链接器”==〉“命令行”;

在“附加选项(D)”编辑框中添加如下指令:/opt:ref,icf;

按“确定”退出;

重新生成(Rebuild)项目;

图一

五、关于 Free Build(也称 Retail Build)和 Checked Build(也称 Debug Build)

每个基于 NT 操作系统有两种不同的程序生成模式,即:

Free Build (或 Retail Build)

Checked Build (或 Debug Build)

Free Build 生成的是最终用户版本,针对生成的二进制文件进行了彻底的优化,禁用了调试断言,并剥离了调试信息。这样一来使可执行程序文件更小,加载更快,使用的内存也更小。

Checked Build 生成的是测试和调试版本。它包含额外的 Free Build 所没有的错误检查,参数验证和调试信息,Checked Build 有助于隔离和跟踪可能导致不可预见的行为的问题,比如内存溢出,不正确的设备配置。虽然 Checked Build 提供了额外的保护,但与 Free Build 比较,它需要更多的内存开销和磁盘空间。由于可执行程序包含符号调试信息;调试时要执行附加的代码、参数检查和输出调试诊断信息,从而导致性能下降。

六、系统符号文件的更新方法

系统符号文件指 Windows 操作系统依赖的那几个重要的 DLL/SYS 和可执行文件对应的符号文件,常见的比如:gdi32.dll、Kernel32.dll、Kerberos.dll、psapi.dll、user32.dll等,使用 WinDbg 调试时,你就会发现系统符号文件(PDB)有多重要,这些文件都与本地的 OS 密切相关,比如,Windows 2000 打了SP补丁的话,那么必须更新系统符号文件才能进行相关调试,原来的符号文件与打补丁后的系统就会不匹配,怎么办呢? 可以通过网络来更新!象下面这样在 WinDbg 的 Symbols Path 里面输入路径:

SRV*D:Symbolswebsymbols*http://msdl.microsoft.com/download/symbols

(斜体部分是你在本地保存符号文件的路径)

如果你不是通过代理上网,那么在你用 WinDbg 打开一个被调试程序后,输入 symchk 回车,WinDbg 就会自动的连到微软的网站根据你的机器的情况更新的 PDB 文件,并将它保存在上面斜体部分指定的本地路径里,这样你就可以确保你的符号文件版本和你机器上的文件版本一致。

如果你是通过代理上网那么你需要配置 IE 的连接设置。具体方法恕不赘言。

上一页  1 2 3 4 

Tags:符号 文件 Windows

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接