检测Android NDK应用中的堆损坏

时间:2018-02-03 00:12:40

标签: debugging android-ndk heap-corruption

当我使用MS Visual Studio编写C ++时,我使用以下语句来检查我的堆是否存在损坏。这是解决问题的绝佳工具:

_ASSERTE( _CrtCheckMemory() );

基本上,您可以在代码周围分散上述语句,以检查堆的一致性。

在Android NDK程序中是否可以使用类似的东西来识别运行时的堆损坏 - 之前我使用逻辑删除转储崩溃了?

1 个答案:

答案 0 :(得分:1)

在Linux中,mcheck可以实现类似的功能。但遗憾的是,这不能在Android上使用(但herehere可以在Android上找到mcheck.h

如果你的设备已植根,你可以试试这个:

对于转储分析,您可以尝试使用已弃用的Android监视器(this link应该有助于启用本机堆转储)