我怎样才能让 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
最后。
当我在汇编中编写涉及跳转的内容时,我会按照以下方式进行操作:
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
最后。