c++ - 可以从 visual studio 中的泄漏检测中隐藏安全内存泄漏吗?

标签 c++ visual-studio memory-leaks

有什么方法可以在 visual studio 的正常内存检测中隐藏安全内存泄漏?

我正在使用这个调试标志检测内存泄漏:

_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

我只是花了很多时间来了解如何在 C++ 项目中嵌入 Boost.Python。它工作得很好,我将拥有的灵 active 给我留下了深刻的印象。所有的努力终于有了返回。也就是说,直到我来到灵魂 splinter 的实现,Python 集成有内存泄漏。这似乎是一个已知问题,不会被修复 Does the Python 3 interpreter leak memory when embedded? .由于内存泄漏保持不变,他们说可以安全地忽略它。但是,在 Visual Studio 中使用泄漏检测对我帮助很大,每次运行程序时都会出现误报,这将使检测真正的内存泄漏变得更加困难。我不想放弃它,但我不想放弃 python eather。

有什么方法可以隐藏内存泄漏吗?将代码包装在静态库、DLL、单独的进程中,任何东西?!如果我听起来很绝望,那是因为这与我的感受非常接近。 ;)

最佳答案

_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) & ~_CRTDBG_ALLOC_MEM_DF);

// allocations here are ignored by memory leaks tracker

_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_ALLOC_MEM_DF);

// memory leaks tracking continues

将内存泄漏跟踪恢复到其原始状态的通用版本:

int flags = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
_CrtSetDbgFlag(flags & ~_CRTDBG_ALLOC_MEM_DF);

// allocations here are ignored by memory leaks tracker

_CrtSetDbgFlag(flags);

// memory leaks tracking returns to its original state

关于c++ - 可以从 visual studio 中的泄漏检测中隐藏安全内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796829/

相关文章:

java - vector 列表中的内存泄漏 Java OutOfMemoryError

delphi - Http 客户端获取请求

c++ - 如何检查一个字节是否包含特定的位模式?

c++ - 将指针设置为 null 会使我的 C++ 程序崩溃

c++ - pow(x, 0.5f) 的快速实现是否比快速 sqrt(x) 更快?

windows - Cordova Windows或OSX构建的可执行文件在哪里?

c++ - VS 2010 可以自动检查/更新头文件吗?

c++ - 将时间步固定为 2500 FPS?

python - 导入错误 : cannot import name '_win32stdio'

使用代理时会泄漏 goroutines