2011-09-12 4 views
6

기본 라이브러리를 사용하는 내 응용 프로그램의 디버그 중에 ndk-stack 유틸리티를 사용하여 도움을 얻으려고합니다. 문제는 나는 유틸리티를 사용하여 얻을 모두이 때문이다 :ndk-stack : 심볼 파일 .../../libutil.so을 열 수 없습니다. 오류 (9) : 잘못된 파일 설명자

*** 충돌 덤프 : ** * 빌드 지문 : 'T - 모바일/htc_vision/비전 : 2.3.4/GRJ22/82286 : 사용자/해제 키 ' pid : 15769, tid : 15794 >>> us.ihmc.aci.dsproapp < < < 신호 11 (SIGSEGV), 코드 1 (SEGV_MAPERR), 오류 addr 00000024 스택 프레임 # 00 pc 00063710 /data/data/us.ihmc.aci.dsproapp/lib/ libutil.so : 심볼 파일/home/enrico/CVSROOT/android/ aci/dsproapp/obj/local/armeabi/libutil을 여는 데는 을 열 수 없습니다. 그래서. 오류 (9) : 잘못된 파일 설명

내가 사용 명령은 이것이다 :

NDK 스택 -sym ../obj/local/armeabi - 덤프 /홈/엔리코/스택 트레이스/crash_waypoint.txt

은 내 모든 네이티브 라이브러리는

로 컴파일 5,

APP_OPTIM = 디버그 APP_STL 다음 Application.mk에서

gnustl_static = 때문에 디버그 심볼 는 존재해야한다. 이전에이 문제가 발생한 사람이 있습니까? 감사합니다. Enrico

답변

1

.so 파일이 있지만 파일에 기호 정보를 포함하지 않은 경우이 오류가 발생했습니다. 내 생각 엔 파일에 기호가 생성되지 않았다는 것입니다.

1

나는 가정

귀하의 Application.mk은 다음과 같이해야합니다 :

APP_STL := gnustl_static 
APP_ABI := armeabi 
APP_OPTIM := debug 

을하고 Android.mk은 다음과 같이해야합니다 :

LOCAL_CFLAGS := -I <Your header files goes here> 
LOCAL_CFLAGS += -g 
LOCAL_CFLAGS += -ggdb 
LOCAL_CFLAGS += -O1 
+0

이 옵션은 모두 기본적으로 사용하도록 설정되어 있습니다. ('APP_OPTIM'은 중간 디렉토리에서 바이너리의 디버깅 가능성을 변경하지 않습니다) –

3

나에게 일어난 디버깅하는 동안 내 C 코드의 충돌. 내 머리를 약 3 시간 동안 긁었다.

아마도 {project_root}/libs/arm*/의 .so 파일을 사용하고있을 것입니다. 하나의 fron {project_root}/obj/local/arm*/을 사용해야합니다. 이것은 상징적 인 정보를 가지고 있습니다.

관련 문제