2011-11-21 12 views
20

sto invocando NDK-stack come segue:NDK-stack non funziona

cat file_temp | ~/workspace/android-ndk-r6b/ndk-stack -sym /home/xyz/trunk/apk/obj/local/armeabi/ 

trova l'impronta digitale incidente, ma non riesce a farmi vedere l'analisi dello stack. L'errore stampato è:

ndk-stack: elff/elf_file.cc:102: static ElfFile* ElfFile::Create(const char*): Assertion `read_bytes != -1 && read_bytes == sizeof(header)' failed. Stack frame #00 pc 43121300 Aborted 

Qualche idea?

Grazie.

+0

Troppo poche informazioni fornite. Su quale sistema operativo sei? Quale client terminal stai usando? Cosa significa "L'errore è stampato"? Perché non usi il flag '-dump' dello script' ndk-stack'? –

+0

l'errore mi suggerisce che non può leggere il file binario. forse dovresti dirgli di leggere dallo stdin aggiungendo un trattino (-) alla lista degli argomenti? –

+0

Dai un'occhiata alla [mia risposta] (http://stackoverflow.com/questions/4359720/how-to-use-ndk-in-android-project/10136832#10136832). Un modo semplice per iniziare a lavorare con NDK –

risposta

1

Questo è il programma ndk-stack che non è in grado di leggere la versione non storta delle librerie condivise.

L'arresto anomalo specifico si verifica perché esiste un file che corrisponde al nome del modulo, ma non è abbastanza grande da contenere un'intestazione ELF.

cose da fare:

  1. Verificare che i file contenuti nella directory fornita tramite -sym siano corretti (e non troncato).

  2. Rimuovi file troncati o file di dimensioni inferiori a poche centinaia di byte.

Se siete curiosi, il codice sorgente per NDK-stack è nell'albero dei sorgenti di Android sotto ndk/sources/host-tools/ndk-stack