平台特定的方式(windows)来取代malloc(和其他C分配风格)



我知道虽然c++::operator new和相关的风格可以被替换/重写,但malloc(和calloc等(不能。

然而,是否还有一些(可能是特定于平台的(方法可以实现相同的功能(例如,用一个在每次分配时向stdout打印内容的实现来替换所有malloc调用(?也许用了一些链接器魔术?特别是,我想替换我链接到应用程序中的静态库所使用的malloc(而不更改这些库的代码(。我对windows的解决方案感兴趣,但如果有人有另一个平台的解决方案,那肯定也是一个有趣的指针。

Malloc可以重载或重写。查看此mi malloc链接https://microsoft.github.io/mimalloc/overrides.html

如果使用MSVC而不是使用不同的分配器,我建议您查看调试CRT的报告选项(这是可以生成泄漏报告的地方,例如,使用_CrtSetDbgFlag(。您也可以使用__CrtSetReportMode和_CrtSetReportFile将报告文本发送到文件。

现有的调试分配器已经非常强大了。

最新更新