【问题标题】:Command line argument list discrepancy between debugger and executable调试器和可执行文件之间的命令行参数列表差异
【发布时间】:2011-08-19 00:23:44
【问题描述】:

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

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"

为什么两个 arglists 之间存在差异?

【问题讨论】:

    标签: linux gdb command-line-arguments


    【解决方案1】:

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

    我猜你有

    (gdb) run lc1 f1.txt
    

    这是错误的。在 gdb 提示符下,应该是

    (gdb) run f1.txt
    

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

    【讨论】:

    • 就是这样。我在 gdb 命令行中输入了第一个选项。有趣的是,是我的教授向我们展示了在调试器中启动可执行文件的方法。
    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多