一个内部developer使用的工具,之前都是用DEBUG模式直接运行的。
在新版本里面,改为RELEASE模式运行,主要是因为STL的操作效率问题。
本以为应该问题不大,但是居然发现有个功能没有了…
在彻底比较完DEBUG和RELEASE的宏不同之外,没有什么发现。
最后跟踪那个功能,发现一处遗留代码居然是这么写的:
CorrectABC这个函数会返回bool类型的值,但是在函数里面会修改OldID的值。
而且OldID会在后面用到。
在新版本里面,改为RELEASE模式运行,主要是因为STL的操作效率问题。
本以为应该问题不大,但是居然发现有个功能没有了…
在彻底比较完DEBUG和RELEASE的宏不同之外,没有什么发现。
最后跟踪那个功能,发现一处遗留代码居然是这么写的:
_ASSERT (CorrectABC (&OldID, ABC, type));
CorrectABC这个函数会返回bool类型的值,但是在函数里面会修改OldID的值。
而且OldID会在后面用到。
开发者在将工具从DEBUG模式切换到RELEASE模式时遇到功能缺失的问题。通过对比两种模式的宏定义及深入代码追踪,最终定位到一处遗留代码,该代码在函数调用中使用_ASSERT宏检查返回值,而该函数还会修改传入参数。
2362

被折叠的 条评论
为什么被折叠?



