我怎样才能让 gdb 反汇编整个函数?

How can I get gdb to disassemble an entire function?

当我在汇编中编写涉及跳转的内容时,我会按照以下方式进行操作:

fucntion: 
  cmp , %rax
  je cond
  mov [=10=] %rdi
  jmp end
cond:
  mov , %rdi
end:
  mov , %rax
  syscall

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

如何让 gdb 与我的汇编程序表现得相似?是否有带有汇编器或链接器的标志,可以使程序的跳转看起来更像 c 程序?或者我必须改变我编写汇编的方式吗?基本上我只想能够输入 disas function 并输出整个函数。

正确的方法是指定函数的范围。 追加

.size function, . - function

最后。