标签: debugging android-ndk heap-corruption
当我使用MS Visual Studio编写C ++时,我使用以下语句来检查我的堆是否存在损坏。这是解决问题的绝佳工具:
_ASSERTE( _CrtCheckMemory() );
基本上,您可以在代码周围分散上述语句,以检查堆的一致性。
在Android NDK程序中是否可以使用类似的东西来识别运行时的堆损坏 - 之前我使用逻辑删除转储崩溃了?
答案 0 :(得分:1)
在Linux中,mcheck可以实现类似的功能。但遗憾的是,这不能在Android上使用(但here和here可以在Android上找到mcheck.h
mcheck.h
如果你的设备已植根,你可以试试这个:
am dumpheap <pid> <path/where/to/save/dump>
对于转储分析,您可以尝试使用已弃用的Android监视器(this link应该有助于启用本机堆转储)