1. dmesg |tail -n 12. objdump -DCI ./a.out示例:$ cat a.cpp#include int main(){ int *pa=NULL; *pa=0; return 0;}$ g++ -g a.cpp$ ./a.out Segmentat...
分类:
其他好文 时间:
2014-08-21 22:44:24
阅读次数:
170
ls /usr/include/stdio.h? 查看头文件 gcc -E print.c > print.i 对文件进行预处理 gcc -v print.c 所有编译的全过程 ls /usr/lib/libc.a? 标准C库 objdump -d a.out??? 生成反汇编代码...
分类:
编程语言 时间:
2014-08-17 20:03:22
阅读次数:
219
注:在linux下开发经常使用的辅助小工具:readelf 、hexdump、od、objdump、nm、telnet、nc 等,详细能够man一下。我们用以下的C代码来研究函数调用的过程。C++ Code12345678910111213141516intbar(intc,intd){inte=c...
分类:
系统相关 时间:
2014-07-27 23:05:29
阅读次数:
471
以下的一段代码:
#include
greeting()
{
printf("Hello, world!\n");
}
main()
{
greeting();
}
经过gcc、ld(链接、编译)之后,生成一个elf可执行文件,再使用objdump处理,生成的反汇编代码如下:
08048368 :
8048368: 55 push %ebp
8048369: 89 e5 mov %esp,...
分类:
系统相关 时间:
2014-06-22 17:34:39
阅读次数:
351
1. 在trace中找到对应的库,例如 liba.so和对应的地址信息
2. 使用addr2line 查看
addr2line 地址 -e liba.so -f
或者 arm-eabi-addr2line
3. 如果addr2line打不出具体的函数就用objdump
objdump -s -d liba.so > xxx.txt
或者arm-eabi-ob...
分类:
移动开发 时间:
2014-06-22 17:18:07
阅读次数:
269
写了一个简单的C语言代码:#includeint main(){ int
a,b,c; a=1; b=2; c=a+b; printf("%d",c);}使用arm-linux-objdump -d 反汇编00000000 :
0: e92d4800 push {fp, lr} 4: e2...
分类:
其他好文 时间:
2014-05-26 18:27:17
阅读次数:
205
首先简要阐述关于gcc、glibc和 binutils模块之间的关系
一、关于gcc、glibc和binutils模块之间的关系
1、gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如 libgcc_s.so、libstdc++.so等。
2、binutils提供了一系列用来...
分类:
其他好文 时间:
2014-04-27 19:51:53
阅读次数:
640