5

我有 c++ 程序,我通过传递字符串来运行它。

g++ -o a main.cpp -lpthread

并执行它./a "Good nice"

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

gdb ./a "Good nice"

将“--”作为文件并说没有这样的文件!

我要逐行调试!

4

4 回答 4

6

使用--argsgdb 的选项:

gdb --args ./a "Good nice"

还要将该-g选项添加到您的编译器调用中,否则 gdb 将无法将您的可执行文件与您的源代码连接:

g++ -g -o a main.cpp -lpthread
于 2013-08-17T07:49:00.650 回答
5

不带参数使用 gdb

gdb ./a

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

set args "Good nice"

你可以看到你设置的参数,使用

show args

详情见这里

于 2013-08-17T07:49:26.587 回答
3

gdb ./prog ->设置参数 string->运行

于 2013-08-17T07:49:11.293 回答
3

花药选择是提供论据后run

$gdb ./a
 run "Good nice"
于 2013-08-17T07:51:35.053 回答