一、简介 Addr2line (它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。 二、选项 Usage: addr2line [option(s)] [addr(s...
分类:
系统相关 时间:
2015-06-21 15:42:21
阅读次数:
762
1.如果崩溃在程序中,例如 SMH kernel: process_name[32183]: segfault at 24 ip 0000000000412b13 sp 00007fffaab744e0 error 6 in process_name[400000+6e000]
1> 可以通过 addr2line -e process_name 0x412b13 -f 具体定位到源...
分类:
系统相关 时间:
2015-06-11 12:59:58
阅读次数:
397
系统:Ubuntu12.04
手机系统:Android5.0
在Android的开发过程中有会有很多的native bug必须要用addr2line来分析,并且这个工具也非常的好用。下面我们来看看具体的使用。
烧录到手机上的版本和你电脑上的编译出的版本要一致,这个数据才是准确的,才好定位到那一行。
首先找到自己电脑可用的addr2line,用命令find . -name *addr2lin...
分类:
移动开发 时间:
2015-02-28 16:38:21
阅读次数:
1118
1.将ndk中的arm-linux-androideabi-addr2line可执行文件的路径加入配置文件~/.bashrc中,例如:export PATH=$PATH:~/dlna/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/pre...
分类:
移动开发 时间:
2015-02-12 12:23:09
阅读次数:
162
arm-linux工具的功能如下:arm-linux-addr2line把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号。arm-linux-ar建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大...
分类:
系统相关 时间:
2015-01-26 20:38:25
阅读次数:
243
系统:Ubuntu12.04
手机系统:Android5.0
在Android的开发过程中有会有很多的bug,利用工具可以很好的帮忙我们来分析问题,特别是一些系统报错的信息中会打印出堆栈,我们可以根据这个堆栈报错信息定位是哪个文件哪行代码出的错。下面就把我使用addr2line的过程记录下来
首先是在电脑上编译出一个eng版本,烧录到手机,在测试或调试的过程中出错了,查看出错信息如下:
0...
分类:
移动开发 时间:
2015-01-23 21:40:02
阅读次数:
374
1,谷歌提供的arm-linux-androideabi-addr2line工具学习点击打开链接点击打开链接2,哪些情况会发生Native exception(1)代码主动发生异常,调用abort()函数。描述:abort()函数首先解除进程对SIGABRT信号的阻止,然后向调用进程发送该信号。ab...
分类:
其他好文 时间:
2015-01-18 20:53:14
阅读次数:
204
最近知道用dmesg和addr2line配合能定位出段错误的具体行。于是自己做了个小实验,在试验中发现,这个办法有时候也是不灵光的,具体取决于段错误的类型。
我写的小程序:
编译之后运行出现段错误,先用dmesg命令找到出错的地址,再用addr2line定位行数,发现定位失败了。看来这种段错误用这种方法是不可行的。
以下是从网上找到的内容:
Addr2line 工具...
分类:
其他好文 时间:
2015-01-04 21:32:39
阅读次数:
191
在Android开发中,程序Crash分三种情况:未捕获的异常、ANR(Application Not Responding)和闪退(NDK引发错误)。其中未捕获的异常根据logcat打印的堆栈信息很容易定位错误。ANR错误也好查,Android规定,应用与用户进行交互时,如果5秒内没有响应用户的操作,则会引发ANR错误,并弹出一个系统提示框,让用户选择继续等待或立即关闭程序。并会在/data/anr目录下生成一个traces.txt文件,记录系统产生anr异常的堆栈和线程信息。如果是闪退,这问题比较难查,...
分类:
移动开发 时间:
2015-01-01 21:19:32
阅读次数:
366
先写一个个人比较喜欢的调试技巧.
1. menuconfig中打开CONFIG_DEBUG_KERNEL
2. objdump -d -S(大写) *.o > file 可以得到混合C和汇编的代码
或者 make *.lst 也能得到
3. addr2line -f -e vmlinux address(0xcxxxxxxxx) 能得到address对应的函数名和所在的文件中的行数...
分类:
其他好文 时间:
2014-12-26 16:49:55
阅读次数:
210