用ndk-stack分析应用native程序异常crash掉

简介:

adb logcat | "/home/hxl/bin/android-ndk-r10d/ndk-stack" -sym "/home/hxl/plu/BadGame/proj.android/obj/local/armeabi/obj/local/armeabi"

 

 

这几天在做android下的音频播放器,使用ffmpeg做解码器,过程中出现一个问题,执行的时候出现下面这个问题: 

Java代码   收藏代码
  1. 03-24 15:05:37.094: I/DEBUG(3223): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***  
  2. 03-24 15:05:37.094: I/DEBUG(3223): Build fingerprint: 'MOTO/olympus/olympus:2.3.5/4.5.3-118_OLY-14/111106:user/release-keys'  
  3. 03-24 15:05:37.094: I/DEBUG(3223): pid: 3214, tid: 3222  >>> com.lrc.tingjue <<<  
  4. 03-24 15:05:37.094: I/DEBUG(3223): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000008  
  5. 03-24 15:05:37.094: I/DEBUG(3223):  r0 afd464e4  r1 00000002  r2 00000002  r3 afd464b0  
  6. 03-24 15:05:37.094: I/DEBUG(3223):  r4 00000000  r5 afd464b0  r6 000b2808  r7 00000004  
  7. 03-24 15:05:37.094: I/DEBUG(3223):  r8 45738858  r9 4557ed78  10 002c1ea0  fp 00000000  
  8. 03-24 15:05:37.094: I/DEBUG(3223):  ip afd464d4  sp 457387e0  lr afd11108  pc afd13fd4  cpsr 00000030  
  9. 03-24 15:05:37.094: I/DEBUG(3223):  d0  000000f043700000  d1  3ff0000043700000  
  10. 03-24 15:05:37.094: I/DEBUG(3223):  d2  4d8666d6424ca6a3  d3  00540ff04a2c08c0  
  11. 03-24 15:05:37.094: I/DEBUG(3223):  d4  3fbc71c7002b0230  d5  3fe999999999999a  
  12. 03-24 15:05:37.094: I/DEBUG(3223):  d6  3fe8000000000000  d7  3fc000003f4ccccd  
  13. 03-24 15:05:37.094: I/DEBUG(3223):  d8  0000000000000000  d9  0000000000000000  
  14. 03-24 15:05:37.094: I/DEBUG(3223):  d10 0000000000000000  d11 0000000000000000  
  15. 03-24 15:05:37.094: I/DEBUG(3223):  d12 0000000000000000  d13 0000000000000000  
  16. 03-24 15:05:37.094: I/DEBUG(3223):  d14 0000000000000000  d15 0000000000000000  
  17. 03-24 15:05:37.094: I/DEBUG(3223):  scr 60000012  
  18. 03-24 15:05:37.143: W/ActivityManager(1634): Activity pause timeout for HistoryRecord{4064de78 com.motorola.blur.home/.HomeActivity}  
  19. 03-24 15:05:37.495: I/DEBUG(3223):          #00  pc 00013fd4  /system/lib/libc.so  
  20. 03-24 15:05:37.495: I/DEBUG(3223):          #01  pc 0001478a  /system/lib/libc.so  
  21. 03-24 15:05:37.495: I/DEBUG(3223):          #02  pc 00002a28  /data/data/com.lrc.tingjue/lib/libSuperPlayer.so  
  22. 03-24 15:05:37.495: I/DEBUG(3223):          #03  pc 00001f08  /data/data/com.lrc.tingjue/lib/libSuperPlayer.so  
  23. 03-24 15:05:37.495: I/DEBUG(3223):          #04  pc 00002824  /data/data/com.lrc.tingjue/lib/libSuperPlayer.so  
  24. 03-24 15:05:37.495: I/DEBUG(3223):          #05  pc 00001180  /data/data/com.lrc.tingjue/lib/libtingjue.so  
  25. 03-24 15:05:37.495: I/DEBUG(3223):          #06  pc 00011e74  /system/lib/libdvm.so  
  26. 03-24 15:05:37.495: I/DEBUG(3223):          #07  pc 000435ec  /system/lib/libdvm.so  
  27. 03-24 15:05:37.495: I/DEBUG(3223):          #08  pc 00017088  /system/lib/libdvm.so  
  28. 03-24 15:05:37.503: I/DEBUG(3223):          #09  pc 0001c210  /system/lib/libdvm.so  
  29. 03-24 15:05:37.503: I/DEBUG(3223):          #10  pc 0001b0f8  /system/lib/libdvm.so  
  30. 03-24 15:05:37.503: I/DEBUG(3223):          #11  pc 00059dae  /system/lib/libdvm.so  
  31. 03-24 15:05:37.503: I/DEBUG(3223):          #12  pc 00061a76  /system/lib/libdvm.so  
  32. 03-24 15:05:37.503: I/DEBUG(3223):          #13  pc 00017088  /system/lib/libdvm.so  
  33. 03-24 15:05:37.503: I/DEBUG(3223):          #14  pc 0001c210  /system/lib/libdvm.so  
  34. 03-24 15:05:37.503: I/DEBUG(3223):          #15  pc 0001b0f8  /system/lib/libdvm.so  
  35. 03-24 15:05:37.503: I/DEBUG(3223):          #16  pc 00059c0c  /system/lib/libdvm.so  
  36. 03-24 15:05:37.503: I/DEBUG(3223):          #17  pc 00059e24  /system/lib/libdvm.so  
  37. 03-24 15:05:37.503: I/DEBUG(3223):          #18  pc 0004e186  /system/lib/libdvm.so  
  38. 03-24 15:05:37.503: I/DEBUG(3223):          #19  pc 00011b94  /system/lib/libc.so  
  39. 03-24 15:05:37.503: I/DEBUG(3223):          #20  pc 0001173c  /system/lib/libc.so  
  40. 03-24 15:05:37.503: I/DEBUG(3223): code around pc:  
  41. 03-24 15:05:37.503: I/DEBUG(3223): afd13fb4 681f447b f102fa37 d01d0788 0101f001   
  42. 03-24 15:05:37.503: I/DEBUG(3223): afd13fc4 0c24f103 0001f081 eb0c1881 688400c1   
  43. 03-24 15:05:37.503: I/DEBUG(3223): afd13fd4 68d568a2 d17d42a5 d1064290 fa102001   
  44. 03-24 15:05:37.503: I/DEBUG(3223): afd13fe4 ea27f201 601f0702 691be004 d371429a   
  45. 03-24 15:05:37.503: I/DEBUG(3223): afd13ff4 60d06082 e0a500c9 42ac689d 808ef240   
  46. 03-24 15:05:37.503: I/DEBUG(3223): code around lr:  
  47. 03-24 15:05:37.503: I/DEBUG(3223): afd110e8 e2166903 1a000018 e5945000 e1a02004   
  48. 03-24 15:05:37.503: I/DEBUG(3223): afd110f8 e2055a02 e1a00005 e3851001 ebffed92   
  49. 03-24 15:05:37.503: I/DEBUG(3223): afd11108 e3500000 13856002 1a000001 ea000009   
  50. 03-24 15:05:37.503: I/DEBUG(3223): afd11118 ebfffe50 e1a01004 e1a00006 ebffed92   
  51. 03-24 15:05:37.503: I/DEBUG(3223): afd11128 e1a01005 e1550000 e1a02006 e3a03000   
  52. 03-24 15:05:37.503: I/DEBUG(3223): stack:  
  53. 03-24 15:05:37.503: I/DEBUG(3223):     457387a0  45638f01    
  54. 03-24 15:05:37.503: I/DEBUG(3223):     457387a4  002c1f80    
  55. 03-24 15:05:37.503: I/DEBUG(3223):     457387a8  fffffe8c    
  56. 03-24 15:05:37.503: I/DEBUG(3223):     457387ac  405442a8    
  57. 03-24 15:05:37.503: I/DEBUG(3223):     457387b0  00000018    
  58. 03-24 15:05:37.503: I/DEBUG(3223):     457387b4  aca4ef45  /system/lib/libdvm.so  
  59. 03-24 15:05:37.503: I/DEBUG(3223):     457387b8  405442a8    
  60. 03-24 15:05:37.503: I/DEBUG(3223):     457387bc  00000000    
  61. 03-24 15:05:37.503: I/DEBUG(3223):     457387c0  00000004    
  62. 03-24 15:05:37.503: I/DEBUG(3223):     457387c4  afd464b0    
  63. 03-24 15:05:37.503: I/DEBUG(3223):     457387c8  000b2808    
  64. 03-24 15:05:37.503: I/DEBUG(3223):     457387cc  000b2808    
  65. 03-24 15:05:37.503: I/DEBUG(3223):     457387d0  45738858    
  66. 03-24 15:05:37.503: I/DEBUG(3223):     457387d4  4557ed78    
  67. 03-24 15:05:37.503: I/DEBUG(3223):     457387d8  df002777    
  68. 03-24 15:05:37.503: I/DEBUG(3223):     457387dc  e3a070ad    
  69. 03-24 15:05:37.503: I/DEBUG(3223): #00 457387e0  81304190  /data/data/com.lrc.tingjue/lib/libSuperPlayer.so  
  70. 03-24 15:05:37.503: I/DEBUG(3223):     457387e4  000b2820    
  71. 03-24 15:05:37.503: I/DEBUG(3223):     457387e8  000b2808    
  72. 03-24 15:05:37.503: I/DEBUG(3223):     457387ec  000b2808    
  73. 03-24 15:05:37.503: I/DEBUG(3223):     457387f0  45738858    
  74. 03-24 15:05:37.503: I/DEBUG(3223):     457387f4  afd1478d  /system/lib/libc.so  
  75. 03-24 15:05:37.503: I/DEBUG(3223): #01 457387f8  81304190  /data/data/com.lrc.tingjue/lib/libSuperPlayer.so  
  76. 03-24 15:05:37.503: I/DEBUG(3223):     457387fc  81302a2c  /data/data/com.lrc.tingjue/lib/libSuperPlayer.so  
  77. 03-24 15:05:37.773: I/System.out(2725): Receive:android.intent.action.PACKAGE_ADDED  
  78. 03-24 15:05:37.773: I/System.out(2725): DataString:package:com.lrc.tingjue  
  79. 03-24 15:05:38.136: I/WindowManager(1634): adjustConfigurationLw fontScale=1.0  



都是一些寄存器以及函数地址,真不知道怎么找具体哪个函数出错了,后来网上看到ndk-stack这个工具,很快就定位到错误了 

ndk-stack需要log作为输入来分析 

adb logcat | $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi 
也可以把log直接拿出来,再用ndk-stack分析 
adb logcat > /tmp/foo.txt 
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump foo.txt

分类:  android solve


本文转自wanqi博客园博客,原文链接http://www.cnblogs.com/wanqieddy/p/4582743.html,如需转载请自行联系原作者

相关文章
|
Dart Android开发 iOS开发
Flutter 弃用 WillPopScope 使用 PopScope 替代方法
了解如何在 Flutter 3.16 中将弃用的 WillPopScope 替换为 PopScope,并学习如何升级您的 Flutter 应用程序。详细指南和最佳实践,帮助您顺利迁移和更新您的导航逻辑。
545 7
Flutter 弃用 WillPopScope 使用 PopScope 替代方法
|
10月前
|
人工智能 自然语言处理 IDE
💡通义灵码:让每个人都能成为软件开发的「超级个体」
作为阿里巴巴达摩院推出的先进大模型技术,通义灵码不仅具备强大的自然语言理解和生成能力,更支持多种编程语言和框架,能够广泛适用于不同的开发场景。这意味着,开发者可以借助通义灵码,通过自然语言进行代码生成、自动化测试、文档编写等,甚至还可以根据需求生成完整的项目结构和业务逻辑。
606 9
💡通义灵码:让每个人都能成为软件开发的「超级个体」
|
域名解析 安全 网络协议
|
网络协议 网络安全 Android开发
公网使用SSH远程连接安卓手机Termux - Android手机服务器
使用安卓机跑东西的时候,屏幕太小,有时候操作不习惯。不过我们可以开启ssh,使用电脑PC端SSH远程连接手机termux。 本次教程主要实现在安卓手机termux上安装SSH,在电脑上通过SSH远程连接Termux。同时在Termux上做内网穿透,用cpolar创建安全隧道映射22端口,实现在外也可以SSH远程连接Termux,无需公网IP,也不用设置路由器 ,这里使用国产内网穿透工具cpolar简单实现。
316 1
公网使用SSH远程连接安卓手机Termux - Android手机服务器
|
缓存 运维 网络协议
mPaaS云平台运维系列之—移动推送产品介绍
消息推送服务(Message Push Service,简称 MPS)是移动开发平台 mPaaS提供的专业的移动消息推送方案,针对不同的场景推出多种推送类型,满足客户的个性化推送需求。为了提升推送的到达率,mPaaS在MPS中集成了华为、小米等厂商的推送功能,在提供控制台快速推送能力的同时,也提供了服务端接入方案,方便用户快速集成移动终端推送功能,与App用户保持互动,从而有效地提高用户留存率,提升用户体验。
2101 0
mPaaS云平台运维系列之—移动推送产品介绍
|
Java 开发工具
gradle Could not create service of type CrossBuildFileHashCache using BuildSessionScopeServices.crea
gradle Could not create service of type CrossBuildFileHashCache using BuildSessionScopeServices.createCrossBuildFileHashCache().
6903 0
|
Android开发 容器 API
Android 扫码枪监听封装
一、参考 1、常用keycode 一、简述 1、设备:扫码枪其实相当于一个物理输入设备,如果软键盘打开的话能明显感觉到其内容在输入 2、问题: 2.1、不能扫出中文来(可能和扫码枪设备,配置有关系) 2.
2515 0
|
安全 Android开发
AndroidQ 以上禁用 wifi 随机mac功能
AndroidQ 以上禁用 wifi 随机mac功能
440 0
|
NoSQL 大数据 MongoDB
MongoDB 中Aggregate使用与相关限制
MongoDB 中Aggregate使用与相关限制
335 0
MongoDB 中Aggregate使用与相关限制
|
存储 物联网 网络性能优化
共享快递柜业务场景实战(服务构建)
使用物联网平台,快速构建一个高性能的共享快递柜业务
共享快递柜业务场景实战(服务构建)