【发布时间】:2009-07-07 16:05:06
【问题描述】:
我正在尝试使用 Purify 6 分析我们使用 VC++ 2003 (7.1) 构建的一个可执行文件中的内存损坏。
当我使用命令检测二进制文件时:
purify /Replace=yes /Run=no myprog.exe
检测中止告诉我可执行文件是增量链接的。很困惑,我检查了构建选项,但 /INCREMENTAL:NO 在那里。可以肯定的是,我重建了它,并且在链接时正确传递了选项。
有没有办法知道可执行文件是否被增量链接?
我查看了dumpbin /HEADERS 所说的内容,但没有看到任何相关内容。
谢谢。
【问题讨论】:
-
我认为增量链接的可执行文件可能比平常更大。
-
他们当然可以,但知道这对我没有帮助。
-
您是在尝试调试还是发布 exe?因为“指定 /DEBUG 时隐含 /INCREMENTAL”(msdn.microsoft.com/en-us/library/4khtbfyf.aspx)。
-
如果我理解正确,如果没有找到
.ilk文件,LINK 将不会使用增量链接。然后它仍然会创建一个新的.ilk文件,但是根据msdn.microsoft.com/en-us/library/4khtbfyf(VS.80).aspx 那是“为后续增量链接做准备”,所以不用于当前链接?那么,如何删除所有.ilk文件并查看是否有任何变化?您是否检查了其他推荐的设置?以下是 PurifyPlus 的一些内容:ibm.com/support/docview.wss?rs=995&uid=swg21265414 -- 顺便说一下,它使用 both /DEBUG 和 /INCREMENTAL:NO。 -
@Kcats:这是一个调试版本,带有 /INCREMENTAL:NO。 @Arjan:我会试试的,谢谢。
标签: windows visual-studio purify incremental-linking