[x86 ASM]运行 带参数的图形调试器

[x86 ASM]Running a graphical debugger with arguments

你会认为这会更容易实现。我试图从 "Assembly Language Step by Step 3rd edition" 中理解一个名为 hexdump1 的小程序,它要求我向它传递一个如下参数:

hexdump1 < input.txt

我非常新,很难理解使用 gdb 时发生了什么。为了让开始时更容易,我使用 EDB 调试器。在选项下 选项卡有一个设置应用程序参数的选项。我将参数设置为:

< input.txt

input.txt

但是一旦我单步执行到它读取输入的代码部分,它就会一直运行下去,我无法再调试它了。我发现很难相信图形调试器根本无法调试带有参数的应用程序,因为这会使使用 非常 受限。

此外,代码运行良好,并且完全按照终端中的预期运行。是否有更好的图形调试器适合我的目的?谢谢。

这里的问题是 < input.txt 部分从来就不是 hexdump1 的参数。显然 hexdump1 已被写入以从标准输入读取(并写入标准输出,我想。)

因此,< input.txt 部分是您在命令行中键入并由命令解释器解析的一些文本(cmd.exe 在 windows 下),它告诉命令解释器启动 hexdump1 并重定向其标准输入流以从该文件读取。因此,hexdump1 最终在不知情的情况下读取了该文件。

现在,当从调试器中启动 hexdump1 时,调试器不会尝试解释 < input.txt 部分,因此它将它作为参数传递给 hexdump1,忽略它并继续尝试从标准输入读取。标准输入为空,所以 hexdump1 什么都不做。

除了:

,我没有办法解决你的问题
  1. 修改 hexdump1 以读取文件名作为参数传递的实际文件,而不是从标准输入读取

  2. 修改调试器的选项,看看是否有任何方法可以指定一个实际文件来重定向标准输入。