Linux 调试器和可执行文件之间的命令行参数列表不一致

Linux 调试器和可执行文件之间的命令行参数列表不一致,linux,gdb,command-line-arguments,Linux,Gdb,Command Line Arguments,今天晚上,我在某个敏感点被它咬了一口,我想澄清一下。正如karlphillip在中所说,可执行文件将参数列表视为 Consider: ./program file.txt argv[0] is "program" argv[1] is "file.txt" 但是,在gdb调试器中,对于程序/lc1 f1.txt,arglist显示为 arg[0] is "/home/jason/Project 6/lc1" arg[1] is "lc1" arg[2] is "f1.txt" 为什么两个参

今天晚上,我在某个敏感点被它咬了一口,我想澄清一下。正如karlphillip在中所说,可执行文件将参数列表视为

Consider: ./program file.txt

argv[0] is "program"
argv[1] is "file.txt"
但是,在gdb调试器中,对于程序
/lc1 f1.txt
,arglist显示为

arg[0] is "/home/jason/Project 6/lc1"
arg[1] is "lc1"
arg[2] is "f1.txt"

为什么两个参数列表之间存在差异?

我无法重现该错误。如何在gdb提示符下运行它

我猜你有

(gdb) run lc1 f1.txt
这是错误的。在gdb提示符中,应该是

(gdb) run f1.txt

这将与您的正常执行相协调。

就是这样。我在gdb命令行中输入了第一个选项。有趣的是,是我的教授向我们展示了在调试器中启动可执行文件的方法。