gpt4 book ai didi

c++ - CRT 未检测到 DLL 中的内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:38 26 4
gpt4 key购买 nike

我开发了一个由主要可执行文件和动态库 (dll) 组成的应用程序。它们都是由我开发的,并且是在 Windows 10 Pro 上使用相同的编译器构建的(仅供引用:它们都包含在相同的 VS 解决方案中)。

当我想使用 MS CRT 测试可执行文件和库的内存泄漏时图书馆。我可以检测到可执行文件中的内存泄漏,但不能检测到动态库中的内存泄漏(我故意用一个未删除的整数在两者中泄漏)。

可执行文件是用 MDd 构建的,库是用 MTd 构建的。我还尝试使用 MTd 构建可执行文件,但没有成功。 (由于依赖关系,库必须使用 MT(d) 构建)。另请注意,我并不是说我有较小的内存泄漏报告(比如没有文件名和行),我的意思是没有关于 dll 的报告,而应该至少有一个。

问题是是否有人遇到过这个问题并且知道如何解决。

最佳答案

Johannes Passing 在他的博客文章中提到,当 DLL 链接到静态版本的 CRT 时,进行显式内存转储的正确位置是 DllMain 的 DLL_PROCESS_DETACH 案例。

https://jpassing.com/2008/09/01/effective-leak-detection-with-the-debug-crt-and-application-verifier/

关于c++ - CRT 未检测到 DLL 中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49644166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com