反汇编
wuyingqiang@ty-kf1:~/1$ gcc hello.c -o app
wuyingqiang@ty-kf1:~/1$ gcc hello.c -g -o app
-g参数决定反汇编之后的文件中,还能否看到c代码
wuyingqiang@ty-kf1:~/1$ objdump -dSsx app > file...
分类:
其他好文 时间:
2015-06-08 13:23:14
阅读次数:
145
程序的机器级表示gcc -o1 -s code.c 产生对应的汇编代码gcc -o1 -c code.c 编译器编译并汇编该代码objdump -d code.o 反汇编查看二进制文件gcc -o1 -o prog code.o main.c 生成可执行文件objdump -d prog 反汇编pr...
分类:
其他好文 时间:
2015-05-20 00:11:08
阅读次数:
153
假设我们编写应用程序有一个read系统调用,下面来看看是如何从很多file_operations结构中寻找到对应的read。我们可以利用反汇编arm-Linux-objdump -D -S xxx >dump,输出到dump文件,打开dump文件,定位到read汇编处,有下面一句:bl 好,接着去....
分类:
系统相关 时间:
2015-05-05 19:02:11
阅读次数:
291
一、objdump的用法objdump命令的man手册 objdump [-a][-bbfname| --target=bfdname][-C][--debugging] [-d][-D] [--disassemble-zeroes] [-EB|-EL|--endian={big|litt...
分类:
其他好文 时间:
2015-04-22 17:54:01
阅读次数:
625
linux工具命令: Nm: 显示目标文件中的符号清单。 Idconfig :把动态库放入缓存,目的是为了程序执行快一点。 Ldd:查看程序依赖哪些库。 Strip: 去掉目标文件中的冗余信息。A.out,一般是调试相关的信息。 Objdump: 显示目标文件中的附加信息。 1、加载执行动态库:(自...
分类:
系统相关 时间:
2015-04-18 21:52:17
阅读次数:
149
1.前言IA32机器码以及汇编代码都与原始的C代码有很大不同,因为一些状态对于C程序员来说是隐藏的。例如包含下一条要执行代码的内存位置的程序指针(program counter or PC)以及8个寄存器。还要注意的一点是:汇编代码的ATT格式和Intel格式。ATT格式是GCC和objdump等工具的默认格式,在CSAPP中一律使用这种格式。而Intel格式则通常会在Intel的IA32架构文档...
分类:
移动开发 时间:
2015-01-17 11:18:22
阅读次数:
644
u-boot-2010-06
顶层目录下的config.mk文件主要完成如下功能的配置:
1、确定生成可执行文件过程中需要的各种工具,如编译器(arm-linux-gcc)、连接器(arm-linux-ld)、反汇编器(arm-linux-objdump)等
2、确定CPU、板相关的配置文件,存在于各个目录下的config.mk
3、确定编译、链接、转换等过程的操作选项
4、根据步骤3确定的编译连接选项生成需要的文件...
分类:
其他好文 时间:
2015-01-04 15:21:06
阅读次数:
176
在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
说明:gcc是编译器,负责对c代码的编译, ld是连接器 负责将多个*.o的目标文件链接成elf可执行文件。elf可执行文件是unix常用的可执行文件类型,就像windows的exe文件。elf文件中有很多信息包括段信息还有头信息,这些信息对硬件是没有意义的,所以有的时候我们通过objcopy将el...
分类:
系统相关 时间:
2014-11-26 22:26:30
阅读次数:
257