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

标签 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并输出整个函数。

最佳答案

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

.size function, . - function

最后。

关于assembly - 如何让 gdb 反汇编整个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845408/

相关文章:

c - ppc64 的汇编代码

objective-c - Xcode 在调试时评估表达式

linux - 为什么 time.h 中的 time() 没有对 sys_time 的系统调用?

c - 为什么整数除以-1(负数)会导致FPE?

linux - 在 x86_64、fedora 上安装 FMS

c - 使用 nop 程序集精确延迟 Arduino?

assembly - 为什么在push指令时使用SIGSEGV

linux - 如何理解 "__xchg"函数中的内联汇编?

c++ - solaris 上支持 C++11/14 的 GNU gcc/g++ 编译器版本

assembly - 如何在gdb中的地址指定的指令上中断?