当我在汇编中编写涉及跳转的内容时,我会执行以下操作:
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/