【发布时间】:2013-07-02 12:03:25
【问题描述】:
我正在开发一个需要大量内存分配(大量图像缓冲区)的 android 应用程序。为此,我正在使用 Android NDK。我遇到了一个奇怪的崩溃。我希望这不是重复的帖子(在浏览了以前的帖子之后)
应用程序崩溃并出现以下错误:I/DEBUG(187): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000004
之前遇到过分段错误,已经解决了。
我很确定我正在正确分配和解除分配内存,因为我为 windows 设置了相同的设置,确认没有内存泄漏,并且我没有访问任何未分配的位置。 (没有取消引用,没有错误的指针)。在 Windows 上测试时未发现内存损坏。
我还确定为分配和解除分配进行的 JNI 调用在代码中的适当位置。只有在使用完成时才会清除内存。
每次崩溃发生时,Backtrace 都会显示不同的 API 调用,以及发生错误的位置。我已经记录了日志,没有一个指针为空,它们符合预期。
此崩溃非常随机发生。偶尔。 一个。当我长时间在应用程序中时。 b。在应用程序内部执行大量操作时。但它大部分时间都运行良好。
谁能建议我的代码中的内存是如何损坏的。可能是什么原因造成的。
【问题讨论】:
标签: android segmentation-fault