在Android本机代码上回溯

时间:2013-07-10 11:16:52

标签: android android-ndk native-code

任何人都可以告诉我这个回溯日志的含义。我在我的代码中产生了一个线程。但我无法理解它的错误。

线程创建代码

pthread_create(& tid,& attr,(void *()(void ))threadFunc,arg);

>I/DEBUG   ( 6144): backtrace:
>I/DEBUG   ( 6144):     #00  pc 00014260  /system/lib/libc.so (dlmalloc+643)
>I/DEBUG   ( 6144):     #01  pc 00016f7f  /system/lib/libc.so (malloc+10)
>I/DEBUG   ( 6144):     #02  pc 00061797  /system/lib/libdvm.so (dvmJdwpPostLocationEvent(JdwpState*, JdwpLocation const*, unsigned long long, int)+124)
I/DEBUG   ( 6144):     #03  pc 000438e1  /system/lib/libdvm.so (dvmDbgPostLocationEvent(Method const*, int, Object*, int)+76)
I/DEBUG   ( 6144):     #04  pc 0002b940  /system/lib/libdvm.so (dvmCheckBefore+504)
I/DEBUG   ( 6144):     #05  pc 0001e37c  /system/lib/libdvm.so
I/DEBUG   ( 6144):     #06  pc 0002bba8  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)
I/DEBUG   ( 6144):     #07  pc 0005f831  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)
I/DEBUG   ( 6144):     #08  pc 0005f85b  /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
I/DEBUG   ( 6144):     #09  pc 00054413  /system/lib/libdvm.so
I/DEBUG   ( 6144):     #10  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
I/DEBUG   ( 6144):     #11  pc 00012558  /system/lib/libc.so (pthread_create+172)

谢谢

1 个答案:

答案 0 :(得分:1)

您确定这是pthread_create发生的吗?尝试使用ndk-stack命令(来自NDK)找出根本原因(或android-ndk-stacktrace-analyzer):

adb logcat | ndk-stack -sym /path_to_your_project/obj/local/armeabi