[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 什么都不做。
除了:
,我没有办法解决你的问题
修改 hexdump1 以读取文件名作为参数传递的实际文件,而不是从标准输入读取
修改调试器的选项,看看是否有任何方法可以指定一个实际文件来重定向标准输入。
你会认为这会更容易实现。我试图从 "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 什么都不做。
除了:
,我没有办法解决你的问题修改 hexdump1 以读取文件名作为参数传递的实际文件,而不是从标准输入读取
修改调试器的选项,看看是否有任何方法可以指定一个实际文件来重定向标准输入。