如何让gdb反汇编整个函数?

时间:2018-04-15 18:28:39

标签: assembly gdb x86-64 att

当我在汇编中写一些涉及跳跃的东西时,我会按照以下方式做点什么:

fucntion: 
  cmp $1, %rax
  je cond
  mov $0 %rdi
  jmp end
cond:
  mov $1, %rdi
end:
  mov $60, %rax
  syscall

问题在于,当我使用gdb并输入disas function时,我只会在function之前看到cond。但是,如果我要写一个类似的c程序,反汇编程序中的跳转语句看起来像jmp ADDRESS <function+xx>,键入disas function将显示该函数的每一行。

如何使gdb与我的汇编程序的行为相似?汇编器或链接器是否有一个标志会使程序的跳转看起来更像c程序?或者我是否必须改变编写汇编的方式?基本上我只想输入disas function并输出整个函数。

1 个答案:

答案 0 :(得分:3)

正确的方法是指定功能的范围。 附加

.size function, . - function

最后。