使用NDK(本机代码)的应用程序下降。我怎么才能找到原因?

时间:2011-04-14 22:12:34

标签: android debugging android-ndk native-code android-ndk-r4

我的应用程序正在使用NDK(在我的情况下为4r-crystax)从相机处理图像。问题是,它在几分钟的工作后就会下降。我想可能会有一些内存泄漏或类似的东西,但我不知道如何找出问题所在。这是关于此错误的日志:

04-14 23:07:37.133: INFO/NATIVE CODE(14895): Detection percentage counted.
04-14 23:07:37.163: DEBUG/MDDetectorView(14895): Some debug info
04-14 23:07:37.193: DEBUG/dalvikvm(14895): GC_EXTERNAL_ALLOC freed 19 objects / 872 bytes in 27ms
04-14 23:07:37.283: INFO/NATIVE CODE(14895): Image to proccess loaded.
04-14 23:07:37.493: INFO/ActivityManager(92): Process com.motiondetector (pid 14895) has died.
04-14 23:07:37.493: DEBUG/CameraService(67): Client::~Client E (pid 67, client 0xad08)
04-14 23:07:37.503: INFO/WindowManager(92): WIN DEATH: Window{46590698 com.motiondetector/com.motiondetector.MDMenuActivity paused=false}
04-14 23:07:37.513: ERROR/CameraService(67): getClientFromCookie: client appears to have died

有什么想法吗?是否有任何有用的工具可以帮助我找到答案?

在处理本机代码期间,Android是否有可能杀死屏幕上的活动?

1 个答案:

答案 0 :(得分:2)

如果您使用的是NDK r5或更高版本,则可以使用ndk-gdb脚本运行程序并通过GDB连接到该程序。如果您的本机代码崩溃,它应该会让您进入GDB命令行,在那里您可以检查导致问题的代码区域。