Android에서 C++ 코드베이스를 실행하고 사용자가 보낸 오류 보고서를 갖고 싶습니다.네이티브 코드 - 프로그래밍 방식으로 함수 호출 스택 (백 트레이스)을 얻는 방법
나는 Java 코드에 대해 잘 작동하는 ACRA library을 사용하고 있지만 네이티브 코드에서 문제가 발생하면 충분한 정보를 얻지 못합니다. 실제로 네이티브 함수 호출 스택 추적을 받기를 원합니다. 내 프로세스가 끝난 후 충돌 정보가 logcat에 인쇄되고 logcat을 읽고 보내도록 ACRA를 구성 할 수 있습니다. 신호 처리기를 사용하여 네이티브 크래시를 감지하고 ACRA가보고하기 위해 Java를 다시 호출하도록 코드를 설정했습니다. 그것은 또한 잘 작동합니다.
그러나 ACRA는 충돌 프로세스가 아직 살아있는 동안 로그를 읽으며, 안드로이드는 충돌 한 프로세스가 완전히 끝난 후에 logcat에 충돌 보고서를 기록합니다. 따라서 ACRA를 사용할 때 스택 추적을받지 못합니다.
그래서 프로그래밍 방식으로 현재 스택 추적을 C++ 코드에서 읽고이 정보를 ACRA (또는 다른 충돌보고 도구)에 직접 제공하는 방법을 찾고 있습니다.
내가 필요로하는 모든 로그 캣에 기록이 보고서의 일부 종류 :
10-10 08:29:13.868: INFO/DEBUG(1121): #00 pc 0003fc7c /data/data/com.ex.lib/libapp.so
10-10 08:29:13.891: INFO/DEBUG(1121): #04 pc 00016df4 /system/lib/libdvm.so
10-10 08:29:13.891: INFO/DEBUG(1121): #05 pc 00045284 /system/lib/libdvm.so
10-10 08:29:13.899: INFO/DEBUG(1121): #15 pc 00047c56 /system/lib/libdvm.so
10-10 08:29:13.922: INFO/DEBUG(1121): #16 pc 00030e4c /system/lib/libandroid_runtime.so
내 코드에서이 스택 트레이스를 얻을 수있는 방법이 있나요?
apk에서 정의 된 두 번째 활동 일 수 있습니다. 두 번째 앱을 설치할 필요가 없습니다. –
네, 그렇지만 READ_LOGS가 필요합니다. 마녀가 사용자에게 약간의 의혹을 줄 수 있습니다. – scooterman