JNI崩溃了,系统日志会打印堆栈信息,所以第一步就是取日志

adb shell  logcat -v threadtime >>d:/log.txt

然后找到日志里面的关键字backtrace例如我的日志是这样的

- ::38.362     F DEBUG   : backtrace:

- ::38.363     F DEBUG   :     # pc 00014d9a  /data/app/com.cloudtv.xdogact-/lib/arm/liblocalser.so

- ::38.363     F DEBUG   :     # pc 0000d741  /data/app/com.cloudtv.xdogact-/lib/arm/liblocalser.so (_Z9WriteHeadR4CUrl+)

- ::38.363     F DEBUG   :     # pc 0000e895  /data/app/com.cloudtv.xdogact-/lib/arm/liblocalser.so (_Z6runSerRVb+)

- ::38.363     F DEBUG   :     # pc 0000a999  /data/app/com.cloudtv.xdogact-/lib/arm/liblocalser.so (_Z5DoSerPv+)

现在想定位第三行,就是0000d741对应代码的位置,就只需要把代码填入下面的脚本进替换,然后执行就OK了

#!/bin/bash
dir=$(pwd)
export PATH=$PATH:/android-ndk-r11c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/
export PATH=$PATH:/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin
addr=0000d741
arm-linux-androideabi-addr2line -e $dir/obj/local/armeabi-v7a/liblocalser.so $addr
aarch64-linux-android-addr2line -e $dir/obj/local/arm64-v8a/liblocalser.so $addr

JNI崩溃调试的更多相关文章

  1. iOS崩溃调试的使用和技巧总结

    在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的. 现在网上有很多关于解 ...

  2. emoji表情引发的JNI崩溃

    今天突然接到客服那边的反馈说,有玩家反馈进游戏后不久就崩溃了,我先是怀疑网络问题,因为一连接聊天成功后就挂了.之后用logcat抓日志,发现挂在jni那里了 JNI DETECTED ERROR IN ...

  3. iOS中崩溃调试的使用和技巧总结 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Cras ...

  4. Windows 程序 dump 崩溃调试

    Windows 程序捕获崩溃异常 生成dump 概述 事情的起因是,有个同事开发的程序,交付的版本程序,会偶尔随机崩溃了. 悲催的是没有输出log,也没有输出dump文件. 我建议他给程序代码加个异常 ...

  5. dmesg 程序崩溃调试

    [root@localhost log]# cat -n /root/xx.c #include <stdio.h> void func(char *p) { *p = 'p'; } in ...

  6. JNI日志调试LOG和中文乱码

    添加日志: 1. 增加log支持. Android.mk文件增加LOCAL_LDLIBS += -llog 2. C代码中增加(放在最前面) #include <android/log.h> ...

  7. dmesg 程序崩溃调试2

    dmesg命令基于缓冲区打印信息dmesg -c可以清除该内存信息清除后demsg 命令不显示任何信息,但可以到/var/log/dmesg查看信息 dmesg |tail 20dmesg |head ...

  8. jni调试3(线程调试env变量问题)

    jni层调试线程死机原因 一,导致死机原因:   jni层中  线程函数中  只要添加调用env 的函数 ,,就会死机     二,解决方法 第一我们应该理解: ①(独立性) JNIEnv 是一个与线 ...

  9. 实现Android-JNI本地C++调试

    1.       原文链接:NDK单步调试方法 如有问题或者版权要求,请拜访原作者或者通知本人. 最近为了性能需求,开始搞JNI,白手起搞真心不容易.中间差点崩溃了好几次,最终总算得到一点心得. JN ...

随机推荐

  1. echarts属性的设置

    // 全图默认背景  // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...

  2. 多线程编程-- part 9 信号量:Semaphore

    Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁". 信号量维护了一个信号量许可集.线程可以通过调用acquire()来获取信号量的许可:当信号量 ...

  3. IIS7发布asp.net mvc提示404

    之前服务器用的都是2003Server的服务器,发布mvc项目都没问题,今天换了一台机器,系统为Windows Server2008 R2  64位的发布mvc项目后就提示: 百度看到好多人说在web ...

  4. 2.(基础)tornado的请求与响应

    之前我们介绍了tornado 的基础流程,但是还遗留了一些问题,今天我们就来解决这些遗留问题并学习新的内容 settings,使用tornado.web.Application(handler, ** ...

  5. python 教程(一)

    必须感慨一下,整了一周多的时间才基本理通顺.自己老是不能静心,方法也不对所以走了很多弯路. 1.建议:一定要先去看官方文档. 下面我们来看一周的成果吧: windows下如何下载并安装Python 3 ...

  6. dfs序 线段树 dfs序列 主席树

    并查集 #include<stdio.h> ]; void sset(int x) { ;i<=x;i++) stt[i]=i; } int ffind(int x) { if(x= ...

  7. [牛客] [# 1108 E] Grid

    2019牛客国庆集训派对day3 链接:https://ac.nowcoder.com/acm/contest/1108/E来源:牛客网 题意 在一个$10 ^ 9 * 10 ^ 9$ 的方格中,每次 ...

  8. zencart通过产品id 批量添加推荐产品

    1.修改 admin/featured.php 查找 pre_add_confirmation 将 pre_add_confirmation 与  break; 之间的代码,用下面的代码替换即可 &l ...

  9. java8学习之Collector同一性与结合性分析

    继续沿着上一次[http://www.cnblogs.com/webor2006/p/8311074.html]Collector接口的javadoc进行阅读,在继续阅读之前,其中有个比较难理解的地方 ...

  10. 如何获取到app的包名

    相信很多朋友在刚开始接触测试app的时候都不清楚app的包名是什么,接下来给大家介绍几种方法去获取. 一.手机设备已连接到电脑,点击进入app中,前提是电脑上装备了android-SDK,tools文 ...