2016-10-27 2 views
1

충돌과 소스 파일의 라인을 결정 구글의 & ANR 섹션은 이런 종류의 피드백을 제공 할 때 사용자의 장치에 네이티브 코드의 충돌 :JNI crashlog : 개발자 콘솔을 재생 스택 트레이스 출력

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
Build fingerprint: '...' 
Revision: '...' 
ABI: 'arm' 
pid: ...., tid: ...., name: .... >>> com.package <<< 
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 
<registers> 
backtrace: 
    #00 pc 003ba9be /data/app/com.package/lib/arm/libx.so (sl_setVolumeSound(unsigned int, float)+105) 
    #01 pc 003b9db7 /data/app/com.package/lib/arm/libx.so (Audio::setVolumeSound(unsigned int, float)+106) 

지금까지 너무 좋아. 하지만 어떻게 위의 샘플 출력에서 ​​sl_setVolumeSound 함수에 대해 +105와 같이 바이트 코드 오프셋 (?)에서 소스 코드 줄을 결정할 수 있습니까?

저는 특히 macosx 명령 줄에서 IDE를 사용하지 않고도 완벽하게 작동하는 솔루션을 고맙게 생각합니다.

답변

0

ndk-stack이이 용도에 특히 적합합니다. 참고로 작동 시키려면 기본 라이브러리의 스트립되지 않은 버전이 필요합니다. 자세한 내용은 here.

+0

정확히 내가 검색 한 내용입니다. 감사합니다. obj/local/armeabi/*.를 가리키면 스트라이프되지 않은 라이브러리도 많은 시간을 절약 할 수 있습니다. 지금 당장은 할 수없는 것처럼 보입니다.이 릴리스되지 않은 .so lib를 추가 릴리스와 함께 보관하기 위해 jenkins 스크립트를 업데이트해야합니다. – bigblackdot

관련 문제