阅读:2311回复:6
有谁可以告诉我check build 和free build 之间的区别和切换这两个编译环境要注意什么?
有谁可以告诉我check build 和free build 之间的区别和切换这两个编译环境要注意什么?
|
|
沙发#
发布于:2002-03-21 11:01
一个是DEBUG版一个是RELEASE版
这两个的是由提供给DDK下的setenv.bat批处理的的第二个参数确定的! |
|
板凳#
发布于:2002-03-21 12:21
这两种情况下,主要的区别是什么?
|
|
地板#
发布于:2002-03-21 15:08
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2002-03-21 15:21
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2002-03-21 18:04
去掉调试信息,优化你的驱动代码,提高效率
|
|
|
6楼#
发布于:2002-03-21 19:03
check/free build
微软的Windows2000驱动程序的测试和调试需要Windows? 2000的自由构建和检查构建。 自由构建(或零星构建)是操作系统的终端用户版本,系统和驱动程序以最优化方式构建,不可用调试断言,且调试信息已从二进制码中去除。自由系统和驱动程序更小更快,对内存的需求更小。 检查构建用于操作系统和内核模式驱动程序的测试和调试,检查构建包括意外错误检查、参数检查和在自由构建中不可用的调试信息。一个检查的系统或驱动程序能帮助区分和记录驱动程序的某些问题,如内存泄漏或不当的设备配置,这些问题将导致不可预测的后果。 尽管检查构建提供额外的保护,但它比自由构建消耗更多的内存和硬盘空间,且由于下列原因,系统和驱动程序运行得更慢。 可执行程序含有符号调试信息。 由于参数检查和调试输出,执行了附加的代码(诊断信息)。 新的驱动程序开发通常包括以下步骤: 1. 编写驱动程序代码,应包括条件编译标记的调试检查。 2. 测试和调试基于操作系统的检查构建的驱动程序的检查构建。 3. 测试和调试基于自由构建的驱动程序的自由构建。 4. 基于自由构建的驱动程序的调整。 5. 使用了检查构建和自由构建的驱动程序和操作系统附加的测试和调试。 6. 使用了自由构建的最终的测试和检查。 在驱动程序开发的早期,需要Windows2000检查构建来调试驱动程序,检查构建的附加调试代码保护了驱动程序可能导致的许多错误(比如复发的自旋锁)。 执行调整、最终测试和检查驱动程序应该基于自由构建而完成,自由构建的速度越快越有可能发现竞争条件和其他同步性的问题。 由于自由构建与Windows2000的零星版本相同,最终测试和检查也应该基于自由构建而完成。 驱动程序代码通常包括预处理器符号,该符号允许被编译成自由和检查构建。 DBG标记是一个保留的符号,可用它来决定编译时Windows2000的什么构建在运行,如果Windows2000检查构建运行,设置DBG为1,如果自由构建运行,不定义DBG(或设置为0,如果或者包括头文件wdm.h ,或者包括ntddk.h)。 驱动程序也应该在至少一个多处理器平台和至少一个单处理器平台上测试和调试;且这两个平台应该运行Windows2000的当前版本。 |
|
|