文档章节

addr2line && objdump 命令记录

JerryLin123
 JerryLin123
发布于 01/14 17:04
字数 431
阅读 7
收藏 1

addr2line和objdump都是在Linux分析C/C++问题的利器,Android本质上基于Linux开发,所以自然而然的也能够使用这两个命令来分析一些so的问题。下面对两个命令做个记录,方便日后查询。

addr2line

直接通过man命令来查看addr2line的介绍,介绍如下:

addr2line translates addresses into file names and line numbers. Given an address in an executable or an offset in a section of a relocatable object, it uses the debugging information to figure out which file name and line number are associated with it.

直译过来就是addr2line作用在于将地址转换成文件名字以及代码行数,通过该命令,可以将寄存器的地址转换成对应的行数,方便发现以及改正Native的一些问题,具体使用可以查看该文章。 Android使用需要到ndk寻找对应的cpu架构寻找,如下图:

objdump

man出来描述如下:

objdump displays information about one or more object files. The options control what particular information to display. This information is mostly useful to programmers who are working on the compilation tools, as opposed to programmers who just want their program to compile and work.

objdump主要用于获取对应so的汇编代码,通过该方式能获取到如下效果:

熟悉汇编的可以了解下。

ndk提供的调试工具还有ndk-stack,有兴趣的可以研究下。


总结

© 著作权归作者所有

共有 人打赏支持
JerryLin123
粉丝 7
博文 57
码字总数 137271
作品 0
东城
私信 提问
addr2line/objdump/nm/readelf使用

原址 熟练掌握GNU tools 的使用后,在调试Native,kernel crash类异常时可发挥事半功倍的作用. 概要 Android编译工具使用了gcc,因此了解和使用gnu toolchain可以在debug时更加方便。 工具目...

u010164190
2017/12/07
0
0
如何调试分析Android中发生的tombstone

如何调试分析Android中发生的tombstone Android中较容易出现以下三类问题:Force close / ANR / Tombstone 前两者主要是查看当前的进程或者系统框架层的状态和堆栈就基本可以分析出来,本文主...

grushy
2014/08/04
0
0
android死机堆栈调试方法

这两种方法都不是我发明了,都是网上一些高手公共出来的调试方法,无奈找不到出处的地方了,所以就在此总结一下,以方便android下的调试: 简要说明: android系统中调试Java非常容易,一般遇...

zhoulc
2013/10/07
0
2
Linux 常用命令如何使用?

作者 | 守望 责编 | 郭芮 Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序,有些可以帮我们定位疑难问题。 本文将简单介绍一下这些命...

CSDN资讯
2018/12/28
0
0
如何定位Android NDK开发中遇到的错误

正式开始这个话题之前,先简单介绍一下什么是NDK和JNI,部分内容来自网络 Android NDK是什么,为什么我们要用NDK? Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Ki...

糊涂熊
2014/12/16
14.1K
2

没有更多内容

加载失败,请刷新页面

加载更多

eggjs与sequelize简单demo

参考 egg 官方文档 安装 // 依赖npm install --save egg-sequelize mysql2// ts 类型npm install --save @types/sequelize 插件,config/plugin.ts import { EggPlugin } from 'egg';......

Geeyu
36分钟前
1
0
看过上百部片子的这个人教你视频标签算法解析

本文由云+社区发表 随着内容时代的来临,多媒体信息,特别是视频信息的分析和理解需求,如图像分类、图像打标签、视频处理等等,变得越发迫切。目前图像分类已经发展了多年,在一定条件下已经...

腾讯云加社区
50分钟前
2
0
2. 红黑树

定义:红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树(Binary Search Tree)。 要理解红黑树,先要了解什么是二叉查找树。在上一章中,我们学习了什么是二叉树,以及二叉树...

火拳-艾斯
51分钟前
3
0
input的button类型,点击页面跳转

一、input type=button 不做任何操作 例如: <input type="button" class="btn btn-primary" style="width: 30%" value="返回" onclick="window.location.href='/users/list'"></input> onc......

Sunki
58分钟前
1
0
踩坑:js 小数运算出现精度问题

背景 在学习小程序商城源码时发现了这个问题,单价可能出现小数,小数之间运算结果会莫名其妙多出一大串数字,比如下面这样👇。 在此之前我是知道 js 中著名的 0.1 + 0.2 != 0.3 的问题的,...

dkvirus
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部