【发布时间】:2020-01-18 21:17:01
【问题描述】:
对于我当前的项目,我需要(即根据要求)使用“复杂”的内部库。 我很快意识到,这个库有一些内存泄漏,我无法修复,因为我无权访问源代码。
幸运的是,该项目应该使用的唯一工具链是 Visual C++ (2017+)。所以我想知道,是否有办法捕获所有内存分配,最好是在一个块内并手动释放这些内存块?
我在想一些类似的事情
begin_capture();
BadObject* obj = new BadAllocation();
auto allocations = end_capture();
for(const auto& alloc: allocations)
delete alloc;
是否有任何扩展,特定于 Visual C++ 或特定于平台的库,我可以用来实现这些功能?
【问题讨论】:
-
即使你能认出它们,你也不知道破坏的规则。你可以
deletemalloced 或者 vicky 反之。一般来说,如果您不知道它是什么以及它来自哪里,您需要自行承担风险。 -
@user4581301 感谢您的意见;这是我一定要提防的!
标签: c++ windows memory visual-c++ memory-leaks