gcc生成反汇编 linux_linux反汇编调试

反汇编有有以下几种方法:

1.使用gcc -S test.c 或者gcc -S test.c>out.txt

2.使用gdb调试,在调试中输入disass 函数名 就可以

3.objdump -D test 一般常用1,2两种,

~~~~~C语言代码example.c

int triangle( int width, int height)

{

int arr{0,1,2,3,4};

int area;

area = width * height /2;

return (area);

}

void main()

{

triangle(5,4);

}

~~~~~gdb反汇编代码

$ gdb example

(gdb) disass main

Dump of assembler code for function main:

0x080483f6 :    push   %ebp

0x080483f7 :    mov    %esp,%ebp

0x080483f9 :    sub    $0x8,%esp

目标码格式列表

--demangle

-C 将底层的符号名解码成用户级名字,除了去掉所有开头的下划线之外,还使得C++函数名以可理解的方式显示出来。

—disassemble或者-d反汇编可执行段

.—dissassemble-all或者-D反汇编所有段

--debugging显示调试信息。企图解析保存在文件中的调试信息并以C语言的语法显示出来。仅仅支持某些类型的调试信息。

--prefix-addresses反汇编的时候,显示每一行的完整地址。这是一种比较老的反汇编格式。显示效果并不理想,但可能会用到其中的某些显示,自己可以对比。

--disassemble-zeroes  一般反汇编输出将省略大块的零,该选项使得这些零块也被反汇编。

-EB -EL  指定字节序  --endian={big|little}这个选项将影响反汇编出来的指令。little-endian就是我们当年在dos下玩汇编的时候常说的高位在高地址,x86都是这种。

--file-headers或者  -f 显示objfile中每个文件的整体头部摘要信息。

--section-headers;--headers 或者-h 显示目标文件各个section的头部摘要信息。

--info或者-i 显示对于 -b 或者 -m 选项可用的架构和目标格式列表。显示支持的目标文件格式和CPU架构

--section=name或者-j name 仅仅显示指定

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值