2011-11-21 5 views
20

invoco NDK-pila de la siguiente manera:NDK-pila no funciona

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

encuentra la huella digital accidente, pero deja de mostrar el análisis pila. El error impreso es:

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 

¿Alguna idea?

Gracias.

+0

Muy poca información proporcionada. ¿En qué SO estás? ¿Qué cliente terminal estás usando? ¿Qué significa "El error impreso es"? ¿Por qué no usas la bandera '-dump' del guión' ndk-stack'? –

+0

el error me sugiere que no puede leer el archivo binario. tal vez deberías decirle que lea de stdin al agregar un guión (-) a la lista de argumentos? –

+0

Eche un vistazo a [mi respuesta] (http://stackoverflow.com/questions/4359720/how-to-use-ndk-in-android-project/10136832#10136832). Una manera fácil de empezar a trabajar con NDK –

Respuesta

1

Este es el programa ndk-stack que no puede leer la versión no eliminada de sus bibliotecas compartidas.

El bloqueo específico se produce porque existe un archivo que coincide con el nombre del módulo, pero no es lo suficientemente grande como para contener un encabezado ELF.

Cosas que hacer:

  1. Compruebe que los archivos contenidos en el directorio suministrado a través -sym son correctas (y no truncada).

  2. Elimina los archivos truncados o los archivos de menos de unos cientos de bytes.

Si tienes curiosidad, el código fuente de NDK-pila está en el árbol fuente de Android bajo ndk/sources/host-tools/ndk-stack