gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:20:45 24 4
gpt4 key购买 nike

有什么方法可以在 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/

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