2011-04-14 2 views
1

내 응용 프로그램은 NDK (필자의 경우 4r-crystax)를 사용하여 카메라의 이미지를 처리합니다. 문제는, 그것은 몇 분의 일 후에 떨어집니다. 나는 거기에 메모리 누수가 있거나 뭔가 그런 것 같아요,하지만 문제가 어디 있는지 알아낼 방법을 모르겠습니다. 이 오류를 해결하는 로그입니다 :NDK (원시 코드)를 사용하는 응용 프로그램이 다운됩니다. 그 이유를 어떻게 알 수 있습니까?

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가 원시 코드를 처리하는 동안 화면 활동을 중단시킬 수 있습니까?

+0

gdb를 사용해 보셨습니까? ndk는 지원하지만 끔찍하지 않습니다. –

답변

2

NDK r5 이상을 사용하는 경우 ndk-gdb 스크립트를 사용하여 프로그램을 실행하고 GDB를 통해 연결할 수 있습니다. 네이티브 코드가 충돌하면 GDB 커맨드 라인에 빠져 나와 문제의 원인이되는 코드 영역을 검사 할 수 있습니다.

관련 문제