Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用gdb调试基于参数的C程序 我有C++程序,我通过它传递字符串来运行。 g++ -o a main.cpp -lpthread_C++_C_Gdb - Fatal编程技术网

用gdb调试基于参数的C程序 我有C++程序,我通过它传递字符串来运行。 g++ -o a main.cpp -lpthread

用gdb调试基于参数的C程序 我有C++程序,我通过它传递字符串来运行。 g++ -o a main.cpp -lpthread,c++,c,gdb,C++,C,Gdb,然后用/a“Good nice” 但是我如何用gdb调试它呢? main.cpp从包含在其中的其他文件调用函数 gdb ./a "Good nice" 将“-”作为文件,并说没有这样的文件 我想逐行调试 使用gdb的--args选项: gdb --args ./a "Good nice" 还要将-g选项添加到编译器调用中,因为否则gdb将无法将可执行文件与源代码连接: g++ -g -o a main.cpp -lpthread gdb./prog->set argsstring->run

然后用
/a“Good nice”

但是我如何用gdb调试它呢? main.cpp从包含在其中的其他文件调用函数

gdb ./a "Good nice"
将“-”作为文件,并说没有这样的文件

我想逐行调试

使用gdb的
--args
选项:

gdb --args ./a "Good nice"
还要将
-g
选项添加到编译器调用中,因为否则gdb将无法将可执行文件与源代码连接:

g++ -g -o a main.cpp -lpthread

gdb./prog->set args
string
->run

使用不带参数的gdb

gdb ./a
然后在gdb中,在运行程序之前

set args "Good nice"
你可以看到你设置的参数,使用的参数

show args

有关详细信息,请参阅。

另一个选项是在运行
后提供参数

$gdb ./a
 run "Good nice"

也可以使用
-g
编译您的程序,否则这一切都是徒劳的他还必须使用
-g
@aaronman编译是的,才能使用调试器。但是这个问题不是关于程序参数的问题吗?如果他向你展示了他是如何编译的,你知道这是错误的,而你不告诉他,你的答案有用吗?如果我们是这样的话,你还应该加上-Wall…;-)@拉兹洛帕普干杯:D,但我认为这真的会偏离主题。不过,我可以对你的评论投赞成票。附带说明:如果你对设置的参数有疑问,请准确使用
show args
@kingsmasher1,在上面的过程之后,当我按
s
开始逐行调试时,它会给出“程序未运行”的结果,您需要通过键入“run”来运行它。这将执行整个程序并给出输出。我要逐行调试!