使用 GDB 检查汇编程序

Examine assembly program using GDB

我对汇编还很陌生 - 上周我们在 class 中学会了如何阅读它。我正在研究一个 pset,但卡住了。 pset 的目的是能够弄清楚每个阶段的汇编代码在做什么,并为程序提供正确的输入,这样它就不会失败。我想通了第一阶段,但我只是不确定如何进行第二阶段。以下只是部分代码,但让我大致了解了我正在查看的内容。

<redacted>

"explode bomb" 导致程序失败。现在我在调用 "explode bomb" 之前、调用 "read_six_numbers" 之前设置一个断点,并使用信息寄存器和 stepi 以及打印语句来尝试查看这部分的正确输入是什么程序是。但是,我真的不确定如何处理这个问题。使用信息寄存器不会给出任何 6 个数字的序列,我真的不确定这是否是我应该寻找的。

由于这是一个 pset,我将在提交时将此 link 添加到我的 pset README 中,我非常感谢对直接解决方案的解释,因为在这部分之后我有更多的阶段解决并介绍使用 gdb 解决此类问题的技术将非常非常有帮助。

我最终弄清楚了 - 这部分的关键是设置多个断点或使用 si 来弄清楚程序是如何运行的。我不会 post 直接回答,因为这可能违反学校规定,但逐步完成该程序对于找出正确的输入至关重要。

感谢 David 教我有关 x GDB 命令的知识 - 它们真的非常有用。