22 个解决方案
#1
贴一下自己的在LogCat中的打印信息如下
奇怪的是程序已经报错了,下面还有C写的打印信息,难道不是出错了JNI中的C代码马上就停止运行了吗
奇怪的是程序已经报错了,下面还有C写的打印信息,难道不是出错了JNI中的C代码马上就停止运行了吗
#2
我在我的SO文件下NDK中执行addr2line -e libavplayer.so 61b5c482后得到的结果是??:0
是不是我这样的方式不对,我的SO文件是几个静态的a文件编译后产生的SO文件
是不是我这样的方式不对,我的SO文件是几个静态的a文件编译后产生的SO文件
#3
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
04-15 11:06:53.859 F/libc ( 2398): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
04-15 11:06:53.869 I/DEBUG ( 1274): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-15 11:06:53.869 I/DEBUG ( 1274): Build fingerprint: 'Xiaomi/mione_plus/mione_plus:4.0.4/IMM76D/ICS24.0:user/release-keys'
04-15 11:06:53.869 I/DEBUG ( 1274): pid: 2398, tid: 2555 >>> org.linphone <<<
04-15 11:06:53.869 I/DEBUG ( 1274): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
04-15 11:06:53.869 I/DEBUG ( 1274): r0 00fad7d0 r1 00000000 r2 000000a0 r3 00000050
04-15 11:06:53.869 I/DEBUG ( 1274): r4 00fbf180 r5 00000000 r6 5cfd59a0 r7 00000000
04-15 11:06:53.869 I/DEBUG ( 1274): r8 5cfd5820 r9 5cfd5814 10 5cfd58a0 fp 5cfd5818
04-15 11:06:53.869 I/DEBUG ( 1274): ip 00000001 sp 5cfd5804 lr 5c8546e4 pc 40050cc8 cpsr 80000010
04-15 11:06:53.869 I/DEBUG ( 1274): d0 0000000000000000 d1 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d2 0000000000000000 d3 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d4 0000000000000000 d5 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d6 0000000000000000 d7 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d8 400d9aa353e247de d9 401c3fb69984a0e5
04-15 11:06:53.869 I/DEBUG ( 1274): d10 412e848000000000 d11 408f400000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d12 3feccccccccccccd d13 4059000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d14 3fb9999999999998 d15 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d16 0000000000000000 d17 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d18 0000000000000000 d19 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d20 0000000000000000 d21 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d22 0000000000000000 d23 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d24 0000000000000000 d25 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d26 0000000000000000 d27 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d28 0000000000000000 d29 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d30 ffffffffffffffff d31 ffffffffffffffff
04-15 11:06:53.869 I/DEBUG ( 1274): scr 60000012
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
#4
没有啊,我只看到了Fatal signal 11 (SIGSEGV) at XXXXX,没有看到像你切图那样的东西哦
这是我Eclipse中提示的打印信息,为什么我的没有像你切图里面Debug信息
#5
搜寻了一下,可以用Android ndk-stack tool
来查看产生这个错误的原因,但是出错的时候我的Eclipse中没有看到有*号开始的那些提示信息
我是用真机测试的,在工程目录下的jni文件夹下Application.mk中添加 APP_OPTIM := debug,我的C文件是用NDK-BUILD编译的
#6
奇怪的是打印了这一行出错信息以后,应该我的C程序出了问题,崩溃了,为什么下一行还有信息打印,那些红色的字体,全部都是打印的C代码中的信息,按理说崩溃了的话,下面就应该没有那些红色的信息了,为什么还在执行呀
#7
#8
我用了最笨的方法来找是哪一行代码出了问题,所以加了很多的打印信息,在Fatal signal 11出现的时候,前后的打印信息是连着的,比如
if (play->m_vo_ctx)
{
LOGE("before free_video_render1 exist!!");
free_video_render(play->m_vo_ctx);
LOGE("after free_video_render1 exist!!");
play->m_vo_ctx = NULL;
}
if (bFreeThread)
{
bFreeThread = FALSE;
JavaVM *av2_vm = av_get_jvm();
(*av2_vm)->DetachCurrentThread(av2_vm);
LOGE("DetachCurrentThread 3 exit!!");
}
LOGE("video_render_thrd exist!!");
当打印完after free_video_render1 exist!!后就抱错了,但是后面的DetachCurrentThread 3 exit!!跟video_render_thrd exist!!还在继续打印,如上图所示,测试了很多次,报这个错误的时候有可能在打印完av_stop 3跟av_stop 4之间,或者其它的打印信息之间,但是这两句打印信息之间并没有什么错误,所以都不知道怎么确定到底是哪里的代码出了问题了
#9
前辈说的LOG,是Eclipse中的LogCat 还是?
#10
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
#11
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
前辈说的adb logcat是指的什么?我可以试试看
#12
前辈说的adb logcat是指的什么?我可以试试看
window->show views->logcat
#13
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
adb logcat是在Eclipse中设置么
#14
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
#15
前辈说的adb logcat是指的什么?我可以试试看
window->show views->logcat
那就是Eclipse中的LogCat了
#16
学习了!!!!!!!!!!
#17
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
很明显,挂掉的地方在libavplayer.so 定位00140160即可知道 哪一行出问题
#18
我已经把这些错误导出成了一个TXT文件
我已经吧这些错误导出成了一个TXT文件,然后按照这个方法执行
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump log.txt
log.txt是导出的出错文件,我吧这个文件放到了NDK目录下面,然后在NDK中执行
ndk-stack -sym E:/myEclipseWorkPlace/Android_855play/obj/local/armeabi -dump log.txt
分析出来的结果跟程序一点关系都没有
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
我已经吧这些错误导出成了一个TXT文件,然后按照这个方法执行
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump log.txt
log.txt是导出的出错文件,我吧这个文件放到了NDK目录下面,然后在NDK中执行
ndk-stack -sym E:/myEclipseWorkPlace/Android_855play/obj/local/armeabi -dump log.txt
分析出来的结果跟程序一点关系都没有
#19
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
很明显,挂掉的地方在libavplayer.so 定位00140160即可知道 哪一行出问题
如何定位
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
很明显,挂掉的地方在libavplayer.so 定位00140160即可知道 哪一行出问题
谢谢前辈的指点,用这个命令确实可以
addr2line -e E:/myEclipseWorkPlace/Android_855play/obj/local/armeabi/libavplayer.so 00140160
不过不知道为什么,我用Android ndk-stack,定位不了
#20
好复杂啊!!!
#21
关于addr2line的用法,请看这个帖子:http://blog.csdn.net/andyhuabing/article/details/7074979。
主要是里面说的库文件要找到的目录是:out/target/product/generic/obj/SHARED_LIBRARIES/libmultiplayerservice_intermediates/LINKED,我已经试过,可以得到行数。
主要是里面说的库文件要找到的目录是:out/target/product/generic/obj/SHARED_LIBRARIES/libmultiplayerservice_intermediates/LINKED,我已经试过,可以得到行数。
#22
请问out/target/product/generic/obj/SHARED_LIBRARIES/libmultiplayerservice_intermediates/LINKED
这个目录在哪里?我翻遍了项目文件都没有找到
这个目录在哪里?我翻遍了项目文件都没有找到
#1
贴一下自己的在LogCat中的打印信息如下
奇怪的是程序已经报错了,下面还有C写的打印信息,难道不是出错了JNI中的C代码马上就停止运行了吗
奇怪的是程序已经报错了,下面还有C写的打印信息,难道不是出错了JNI中的C代码马上就停止运行了吗
#2
我在我的SO文件下NDK中执行addr2line -e libavplayer.so 61b5c482后得到的结果是??:0
是不是我这样的方式不对,我的SO文件是几个静态的a文件编译后产生的SO文件
是不是我这样的方式不对,我的SO文件是几个静态的a文件编译后产生的SO文件
#3
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
04-15 11:06:53.859 F/libc ( 2398): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
04-15 11:06:53.869 I/DEBUG ( 1274): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-15 11:06:53.869 I/DEBUG ( 1274): Build fingerprint: 'Xiaomi/mione_plus/mione_plus:4.0.4/IMM76D/ICS24.0:user/release-keys'
04-15 11:06:53.869 I/DEBUG ( 1274): pid: 2398, tid: 2555 >>> org.linphone <<<
04-15 11:06:53.869 I/DEBUG ( 1274): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
04-15 11:06:53.869 I/DEBUG ( 1274): r0 00fad7d0 r1 00000000 r2 000000a0 r3 00000050
04-15 11:06:53.869 I/DEBUG ( 1274): r4 00fbf180 r5 00000000 r6 5cfd59a0 r7 00000000
04-15 11:06:53.869 I/DEBUG ( 1274): r8 5cfd5820 r9 5cfd5814 10 5cfd58a0 fp 5cfd5818
04-15 11:06:53.869 I/DEBUG ( 1274): ip 00000001 sp 5cfd5804 lr 5c8546e4 pc 40050cc8 cpsr 80000010
04-15 11:06:53.869 I/DEBUG ( 1274): d0 0000000000000000 d1 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d2 0000000000000000 d3 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d4 0000000000000000 d5 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d6 0000000000000000 d7 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d8 400d9aa353e247de d9 401c3fb69984a0e5
04-15 11:06:53.869 I/DEBUG ( 1274): d10 412e848000000000 d11 408f400000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d12 3feccccccccccccd d13 4059000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d14 3fb9999999999998 d15 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d16 0000000000000000 d17 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d18 0000000000000000 d19 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d20 0000000000000000 d21 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d22 0000000000000000 d23 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d24 0000000000000000 d25 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d26 0000000000000000 d27 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d28 0000000000000000 d29 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d30 ffffffffffffffff d31 ffffffffffffffff
04-15 11:06:53.869 I/DEBUG ( 1274): scr 60000012
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
#4
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
04-15 11:06:53.859 F/libc ( 2398): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
04-15 11:06:53.869 I/DEBUG ( 1274): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-15 11:06:53.869 I/DEBUG ( 1274): Build fingerprint: 'Xiaomi/mione_plus/mione_plus:4.0.4/IMM76D/ICS24.0:user/release-keys'
04-15 11:06:53.869 I/DEBUG ( 1274): pid: 2398, tid: 2555 >>> org.linphone <<<
04-15 11:06:53.869 I/DEBUG ( 1274): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
04-15 11:06:53.869 I/DEBUG ( 1274): r0 00fad7d0 r1 00000000 r2 000000a0 r3 00000050
04-15 11:06:53.869 I/DEBUG ( 1274): r4 00fbf180 r5 00000000 r6 5cfd59a0 r7 00000000
04-15 11:06:53.869 I/DEBUG ( 1274): r8 5cfd5820 r9 5cfd5814 10 5cfd58a0 fp 5cfd5818
04-15 11:06:53.869 I/DEBUG ( 1274): ip 00000001 sp 5cfd5804 lr 5c8546e4 pc 40050cc8 cpsr 80000010
04-15 11:06:53.869 I/DEBUG ( 1274): d0 0000000000000000 d1 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d2 0000000000000000 d3 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d4 0000000000000000 d5 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d6 0000000000000000 d7 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d8 400d9aa353e247de d9 401c3fb69984a0e5
04-15 11:06:53.869 I/DEBUG ( 1274): d10 412e848000000000 d11 408f400000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d12 3feccccccccccccd d13 4059000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d14 3fb9999999999998 d15 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d16 0000000000000000 d17 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d18 0000000000000000 d19 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d20 0000000000000000 d21 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d22 0000000000000000 d23 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d24 0000000000000000 d25 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d26 0000000000000000 d27 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d28 0000000000000000 d29 0000000000000000
04-15 11:06:53.869 I/DEBUG ( 1274): d30 ffffffffffffffff d31 ffffffffffffffff
04-15 11:06:53.869 I/DEBUG ( 1274): scr 60000012
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
没有啊,我只看到了Fatal signal 11 (SIGSEGV) at XXXXX,没有看到像你切图那样的东西哦
这是我Eclipse中提示的打印信息,为什么我的没有像你切图里面Debug信息
#5
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
搜寻了一下,可以用Android ndk-stack tool
来查看产生这个错误的原因,但是出错的时候我的Eclipse中没有看到有*号开始的那些提示信息
我是用真机测试的,在工程目录下的jni文件夹下Application.mk中添加 APP_OPTIM := debug,我的C文件是用NDK-BUILD编译的
#6
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
奇怪的是打印了这一行出错信息以后,应该我的C程序出了问题,崩溃了,为什么下一行还有信息打印,那些红色的字体,全部都是打印的C代码中的信息,按理说崩溃了的话,下面就应该没有那些红色的信息了,为什么还在执行呀
#7
#8
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
我用了最笨的方法来找是哪一行代码出了问题,所以加了很多的打印信息,在Fatal signal 11出现的时候,前后的打印信息是连着的,比如
if (play->m_vo_ctx)
{
LOGE("before free_video_render1 exist!!");
free_video_render(play->m_vo_ctx);
LOGE("after free_video_render1 exist!!");
play->m_vo_ctx = NULL;
}
if (bFreeThread)
{
bFreeThread = FALSE;
JavaVM *av2_vm = av_get_jvm();
(*av2_vm)->DetachCurrentThread(av2_vm);
LOGE("DetachCurrentThread 3 exit!!");
}
LOGE("video_render_thrd exist!!");
当打印完after free_video_render1 exist!!后就抱错了,但是后面的DetachCurrentThread 3 exit!!跟video_render_thrd exist!!还在继续打印,如上图所示,测试了很多次,报这个错误的时候有可能在打印完av_stop 3跟av_stop 4之间,或者其它的打印信息之间,但是这两句打印信息之间并没有什么错误,所以都不知道怎么确定到底是哪里的代码出了问题了
#9
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
#10
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
#11
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
前辈说的adb logcat是指的什么?我可以试试看
#12
前辈说的adb logcat是指的什么?我可以试试看
window->show views->logcat
#13
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
adb logcat是在Eclipse中设置么
#14
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
#15
前辈说的adb logcat是指的什么?我可以试试看
window->show views->logcat
那就是Eclipse中的LogCat了
#16
学习了!!!!!!!!!!
#17
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
很明显,挂掉的地方在libavplayer.so 定位00140160即可知道 哪一行出问题
#18
我已经把这些错误导出成了一个TXT文件
我已经吧这些错误导出成了一个TXT文件,然后按照这个方法执行
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump log.txt
log.txt是导出的出错文件,我吧这个文件放到了NDK目录下面,然后在NDK中执行
ndk-stack -sym E:/myEclipseWorkPlace/Android_855play/obj/local/armeabi -dump log.txt
分析出来的结果跟程序一点关系都没有
LOG中并没有看到挂掉的堆栈信息啊 一般像这种
里面应该有挂掉的堆栈,然后栈顶就是最后挂掉的地方,还有用addr2line 必须是符号库文件,也就是obj目录下的,而不是libs目录
前辈说的LOG,是Eclipse中的LogCat 还是?
Eclipse 中的log要选 All messages,不能采用过滤,不然就看不到了。最好直接用 adb logcat 来抓,这样比较全
我已经吧这些错误导出成了一个TXT文件,然后按照这个方法执行
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump log.txt
log.txt是导出的出错文件,我吧这个文件放到了NDK目录下面,然后在NDK中执行
ndk-stack -sym E:/myEclipseWorkPlace/Android_855play/obj/local/armeabi -dump log.txt
分析出来的结果跟程序一点关系都没有
#19
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
很明显,挂掉的地方在libavplayer.so 定位00140160即可知道 哪一行出问题
如何定位
选择All messages确实可以看见这个,我的动态库文件是libavplayer.so,图片中选中的那一句是不是就是报的错误函数,工程中确实也有update_textures_with_yuv这个函数
很明显,挂掉的地方在libavplayer.so 定位00140160即可知道 哪一行出问题
谢谢前辈的指点,用这个命令确实可以
addr2line -e E:/myEclipseWorkPlace/Android_855play/obj/local/armeabi/libavplayer.so 00140160
不过不知道为什么,我用Android ndk-stack,定位不了
#20
好复杂啊!!!
#21
关于addr2line的用法,请看这个帖子:http://blog.csdn.net/andyhuabing/article/details/7074979。
主要是里面说的库文件要找到的目录是:out/target/product/generic/obj/SHARED_LIBRARIES/libmultiplayerservice_intermediates/LINKED,我已经试过,可以得到行数。
主要是里面说的库文件要找到的目录是:out/target/product/generic/obj/SHARED_LIBRARIES/libmultiplayerservice_intermediates/LINKED,我已经试过,可以得到行数。
#22
请问out/target/product/generic/obj/SHARED_LIBRARIES/libmultiplayerservice_intermediates/LINKED
这个目录在哪里?我翻遍了项目文件都没有找到
这个目录在哪里?我翻遍了项目文件都没有找到