首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有可能隐藏安全的内存泄漏,防止在visual中检测泄漏?

是否有可能隐藏安全的内存泄漏,防止在visual中检测泄漏?
EN

Stack Overflow用户
提问于 2014-05-22 02:21:51
回答 1查看 688关注 0票数 3

在visual中,是否有任何方法可以隐藏安全的内存泄漏以避免正常内存检测?

我使用此调试标志检测内存泄漏:

代码语言:javascript
运行
复制
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

我只是花了很多时间研究如何将Boost.Python嵌入到C++项目中。它工作得很好,我对我将拥有的灵活性印象深刻。所有的努力终于有了回报。也就是说,在我意识到灵魂崩溃之前,Python集成有一个内存漏洞。这似乎是一个已知的问题,不会是固定的Does the Python 3 interpreter leak memory when embedded?。由于内存泄漏保持不变,他们说可以安全地忽略它。然而,在Visual中使用泄漏检测对我来说是一个很大的帮助,每次运行程序时都会出现假阳性,这将使检测真正的内存泄漏变得更加困难。我不想放弃,但我不想放弃巨蟒皮革。

有什么办法让我隐藏记忆泄漏吗?将代码包装在一个静态库中,DLL,单独的进程,有什么?!如果我听起来很绝望,那是因为这和我的感觉很接近。;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-22 04:53:12

代码语言:javascript
运行
复制
_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

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

代码语言:javascript
运行
复制
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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23796829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档