1. 动态so处理:

arm-linux-androideabi-readelf.exe -a XX.so > xx.txt输出所有函数

arm-linux-androideabi-objdump.exe -dx XX.so > xx.txt反汇编so包,此时使用 $(JNI_PROJ_PATH)/obj\local\armeabi下面带符号表的so包。JNI_PROJ_PATH为编译so包时jni文件夹的根目录

2. 静态a处理:

arm-linux-androideabi-ar.exe -t xx.a > xx.txt 输出.a内所有函数

arm-linux-androideabi-nm.exe xx.a > xx.txt 输出.a内所有函数

3. ndk编译

上面两种库文件,.a和.so都可以直接通过 arm-linux-androideabi-g++.exe 工具编译,编译语法跟linux上的g++一致。

也可以直接使用ndk-build命令!

4. crash定位

1)使用addr2line将地址转化成代码行数,输入的so为带符号表的,即为strip过的:

arm-linux-androideabi-addr2line.exe -f -e E:\dev_code\Sosomap-old\Sosomap-jni\obj\local\armeabi\libXX.so 000263ae

2)使用ndk-stack.exe还原堆栈:

ndk-stack -sym E:\dev_code\Sosomap-old\Sosomap-jni\obj\local\armeabi -dump D:\android-ndk-r9b-windows-x86\txmap_log.txt-sym为带符号表的so路径,

-dump为crash的堆栈信息,必须包含:********** Crash dump: **********

原文:http://blog.csdn.net/ryfdizuo/article/details/26389845

android so readelf.exe,android ndk中的工具使用相关推荐

  1. 在android C/C++ native编程(ndk)中使用logcat

    最近在研究Android 2.2 源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成LO ...

  2. Android NDK 中堆栈日志 add2line 的分析实践

    文章目录 目的 常用的辅助工具 分析步骤 参考 目的 Android NDK 中出现的 crash 日志分析定位,使用 addr2line 对库中定位so 动态库崩溃位置,定位到某个函数的具体的代码行 ...

  3. 【Android 逆向】Android 进程注入工具开发 ( 系统调用 | Android NDK 中的系统调用示例 )

    文章目录 一.系统调用 二.Android NDK 中的系统调用示例 一.系统调用 在 " 用户层 " , 运行的都是用户应用程序 ; 用户层 下面 是 驱动层 , 驱动层 下面是 ...

  4. 【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )

    文章目录 一.Android 平台代码调试器代码 二.Android.mk 构建脚本内容 三.Application.mk 构建脚本内容 四.正式编译 五.博客资源 一.Android 平台代码调试器 ...

  5. android ndk使用c 11,使用c 11 std :: async在android ndk中使用不完整类型无效

    我尝试使用以下函数来检查android ndk中是否支持std :: async以及windows中的cygwin.我使用的功能如下 机器:64位赢得8与cygwin Eclipse:Juno 4.2 ...

  6. 在Android NDK中使用OpenSSL

    从 6.0 开始,Google 要求不要使用系统的 OpenSSL,请见:https://developer.android.com....因此,请不要再使用本文介绍的方法,请自行交叉编译 OpenS ...

  7. socket android用法,Android NDK中socket的用法以及注意事项分析

    与Java层中的套接字相比,本机层中的Socket可以选择更多的配置项,并获得关于当前拥塞状态的更准确的信息,那么 NDK中socket的用法以及注意事项分析,大家清楚吗?下文是爱站技术频道小编为大家 ...

  8. android源码中的ndk,如何在不需要Android操作系统源代码的情况下在Android NDK中创建新的NativeWindow?...

    我想编译一个Android OpenGL控制台应用程序,您可以直接从控制台启动Android x86或从Android x86 GUI中的Android终端应用程序运行.如何在不需要Android操作 ...

  9. android so导致启动慢,谈谈Android NDK中动态链接库(.so文件)的优化

    做了不少NDK相关的工作,不知道别人有没有同样的困惑,经常在编译C/C++代码的时候会出一些error或者warning,然后在网上搜,发现在Android.mk或者Application.mk文件中 ...

最新文章

  1. 设置Button控件创建完毕时触发的事件.
  2. c++迭代器iterator通用吗_「ES6基础」迭代器(iterator)
  3. stale element reference: element is not attached to the page document 异常
  4. 尝鲜RHEV 3.0——概念篇(附RHEV3.0下载)
  5. wps电脑版_使用好这几个功能,让你手机里的wps变身神器。
  6. 滑翔导弹末段多约束智能弹道规划
  7. oracle 存储过程给另一个用户的权限问题
  8. 关于二分限制最短路的题的总结
  9. 使用python模拟实现PID控制算法
  10. 在线人民币数字金额转成美元金额大写工具
  11. 日语简体形与敬体形 - 新版标日22课
  12. c语言双引号的三个作用是什么,文中“说话” 一词上所加引号的作用是什么
  13. java file文件大小_Java实现获取文件大小的几种方法
  14. 程序员如何快速上手一个自己不太熟悉的新项目
  15. 打印选课学生名单 (25分)
  16. 检测色卡饱和度和色彩偏差
  17. STM32 USB基础知识
  18. 建立您的启动:自定义会议视图
  19. [ 2204听力 ] 三
  20. PAT 1026 Table Tennis (30分)

热门文章

  1. 为什么我们喜欢用 sigmoid 这类 S 型非线性变换?
  2. 360手机麦克风测试软件,【奇酷小技巧】教你无需ROOT增大话筒、听筒和外放声音!...
  3. java状态模式例子答案_[转载]java设计模式_状态模式(带例子)
  4. mysql查看比较大的数据表_mysql 如何查看哪些表数据量比较大
  5. python取三位小数_python保留小数位的三种实现方法
  6. airtest自动化测试_自动化测试必备实用工具,帮你提高工作效率|Gitee项目推荐...
  7. Python入门100题 | 第043题
  8. LeetCode-数学-9. 回文数
  9. numpy.copy详解
  10. 第三周 数据分析之概要 Pandas库入门