2011-09-12 23 views
6

Sto cercando di utilizzare l'utilità ndk-stack per ottenere aiuto durante il debug della mia app che utilizza librerie native. Il problema è che tutto quello che ottiene utilizzando l'utilità è questo:ndk-stack: impossibile aprire il file di simboli .../../libutil.so. Errore (9): descrittore di file errato

*** arresto anomalo: ** * Corporatura impronte digitali: 'TMobile/htc_vision/visione: pid/release-chiavi utente:: 2.3.4/GRJ22/82286 15769, tid: 15794 >>> us.ihmc.aci.dsproapp < < < segnale 11 (SIGSEGV), codice 1 (SEGV_MAPERR), guasto addr 00000024 Stack frame # 00 pz 00063710/data/data/us.ihmc.aci.dsproapp/lib/ libutil.so: Impossibile per aprire il file di simboli/home/enrico/CVSROOT/android/ aci/dsproapp/obj/local/armeabi/libutil. così. Errore (9): Bad file di descrittore

Il comando che sto usando è questo:

NDK-stack -sym ../obj/local/armeabi dump /home/enrico/stacktrace/crash_waypoint.txt

Tutte le mie librerie native sono compilati con

APP_OPTIM: = di debug APP_STL: = gnustl_static

Nel Application.mk, quindi i simboli di debug dovrebbero essere presenti. Qualcuno di voi ha avuto questo problema prima? Enrico

Enrico

risposta

1

Ho visto questo errore quando il file .so è presente ma il file non contiene le informazioni simboliche. La mia ipotesi è che il tuo file non abbia i simboli generati per questo.

1

suppongo

tuo Application.mk dovrebbe essere simile a questo:

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

e la tua Android.mk dovrebbe essere simile a questo:

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

Tutte queste opzioni sono attive per impostazione predefinita. ('APP_OPTIM' non modifica la debugabilità dei binari nella directory intermedia) –

3

mi è successo durante il tentativo di eseguire il debug un crash nel mio codice C. Mi sono graffiato la testa per circa 3 ore.

Probabilmente stai utilizzando il file .so da {project_root}/libs/arm*/. Dovresti usare il numero {project_root}/obj/local/arm*/. Questo ha l'informazione simbolica.

Problemi correlati