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

Debugging [x86 ASM]运行带参数的图形调试器,debugging,assembly,Debugging,Assembly,你会认为这更容易实现。我试图理解一个名为hextump1的小程序,来自“汇编语言分步第三版”,它需要我向它传递一个如下参数: hextump1

你会认为这更容易实现。我试图理解一个名为hextump1的小程序,来自“汇编语言分步第三版”,它需要我向它传递一个如下参数:

hextump1 我是个新手,很难理解在使用gdb时发生了什么。为了在开始时更简单,我使用EDB调试器。在选项下 选项卡有一个设置应用程序参数的选项。我已将参数设置为:

input.txt

但一旦我进入代码中读取输入的部分,它就会一直运行,我再也无法调试它了。我发现很难相信图形调试器根本无法调试带有参数的应用程序,因为这样会使的使用极其有限


此外,代码运行良好,完全符合终端中的要求。有更好的图形调试器吗?谢谢。

这里的问题是,
部分从来不是hextump1的参数。显然,hextump1已经被写入到从标准输入读取(我想是写入到标准输出)

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

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

我对你的问题没有解决办法,除了:

  • 修改hextump1以读取文件名作为参数传递的实际文件,而不是从标准输入读取

  • 搞乱调试器的选项,看看是否有办法指定一个实际文件来重定向标准输入


  • 奥利德伯格怎么样?感谢您抽出时间回答。我根本找不到任何其他的方法来学习如何更加适应GDB。看来没有对手了。