作为我的任务的一部分,我需要调试一个有错误的程序。然而,我必须首先传递命令行参数才能解决这个问题。
我执行:
gdb -tui InsertionSortWithErrors
这个方法是有效的,但之后我不知道如何传递参数。我使用了 gdb -help
命令,并看到了关于 --args
的说明,我也尝试过但没有成功。
我想要做到同时使用调试器和 GUI 并传递命令行参数。
作为我的任务的一部分,我需要调试一个有错误的程序。然而,我必须首先传递命令行参数才能解决这个问题。
我执行:
gdb -tui InsertionSortWithErrors
这个方法是有效的,但之后我不知道如何传递参数。我使用了 gdb -help
命令,并看到了关于 --args
的说明,我也尝试过但没有成功。
我想要做到同时使用调试器和 GUI 并传递命令行参数。
一旦gdb
启动,您可以使用"r args"来运行程序。
因此,如果您正在运行您的代码:
$ executablefile arg1 arg2 arg3
通过 gdb
进行调试:
$ gdb executablefile
(gdb) r arg1 arg2 arg3
尝试
gdb --args InsertionSortWithErrors arg1toinsort arg2toinsort
gdb -h
,这在手册页中也有提到。 - Pietro Saccardi在 GDB shell 内部,在运行程序之前,您可以进行另一种选择:
输入以下命令:
(gdb) set args file1 file2
使用以下方式进行检查:
(gdb) show args
我正在使用GDB7.1.1版本,如--help
所示:
gdb [options] --args executable-file [inferior-arguments ...]
我认为,刚开始的时候这个顺序有点不直观。
$ gdb --args <可执行文件> <参数>
。我错误地在 --args
后面的所有内容周围添加了引号,导致 gdb 将整个内容解析为可执行文件。 - zpon--args
。如果它被拼写为 --run
,那就会很直观。 - Basile Starynkevitch
program --option1 --option2=argvalue
,所以在gdb中我输入了:r --option1 --option2=argvalue
。一开始我没有意识到这点。 - harperviller
代表gdb命令run
,当你在gdb中键入help run
时,你可以看到一些帮助信息。 - Carl Smotricz