当编译器优化代码时,优化的范围是什么?优化
a)是否可以跨越一组嵌套大括号?
b)跨越多个功能?
c)跨度超过文件?
我们正在追逐一个似乎来自优化的模糊错误.代码在发布模式下崩溃但不在调试模式下崩溃.当然,我们知道这可能是堆腐败或其他内存问题bur已经追了一段时间了.我们正在考虑的一个途径是在调试模式下有选择地编译我们的文件,直到问题消失.换一种说法:
a)从在发布模式下
编译的所有文件开始b)
如果仍然看到崩溃,则在调试模式下编译1/2文件,在发布编译文件中占用一半并在调试模式下编译,
如果没有看到崩溃,请说一半在调试模式下编译的文件并在发布模式下
重复编译,直到我们缩小可疑文件,
这是一个二进制搜索,以缩小问题文件
我们知道如果这是一个内存问题,那么简单地进行这种混合编译可能会使bug消失,但是如果我们能够缩小问题文件的范围,那么我们就很容易了.
然而,突出的问题是优化的范围是什么 - 它们是否可以跨越多个文件?
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |