1

我想逐行查看老师给我的二进制文件,以检查堆栈上的地址和不同寄存器的内容,但是我对使用gdb不是很熟悉。虽然我有 C 代码,但我们应该完全从二进制文件中工作。以下是我到目前为止使用的命令:

(gdb) file SomeCode

这给了我这个信息:

Reading symbols from ../overflow/SomeCode ...(no debugging symbols found)...done.

然后我使用:

(gdb) disas main

这给了我所有的程序集。我想设置一个断点并使用“下一个”命令,但我尝试过的命令都不起作用。有人知道我会使用的语法吗?

4

2 回答 2

3

尝试使用niwhich is nexti。等效的是si哪个是步骤指令

于 2010-05-04T01:16:02.483 回答
2

nexti 如果你想跳过函数调用。stepi 如果你想输入一个函数调用。

以下文档非常有帮助;它列出了您可以在 gdb 上使用的所有重要命令。

X86-64:http ://csapp.cs.cmu.edu/public/docs/gdbnotes-x86-64.pdf

IA32:http ://csapp.cs.cmu.edu/public/docs/gdbnotes-ia32.pdf

于 2010-10-24T22:48:21.400 回答