Linux下gdb调度C++代码基本步骤

1.编写好代码后,我们需要生成一个可执行文件去运行程序。

g++ -g test.cpp -o test

如上指令,我们通过g++去编译test.cpp,并生成可执行文件test

 

2.运行可执行文件test

./test

 

3.接着进行代码的调试,在命令行输入gdb,然后进入了gdb的环境下。

gdb

 

4.然后输入file main,这样我们就告诉gdb我们要调试main工程

file main

 

5.然后我们输入l,就可以罗列出当前代码的信息

l

 

6.输入b加函数名或b加行号,可在相应位置设置断点

b main (在main函数处设置断点)

b 5 (在第5行设置断点)

 

7.加下来输入r,我们开始运行代码,然后代码就停止到设置的断点处

r

 

8.然后输入s,单步进入函数体

s

 

9.可以输入n,进行单步的调试

n

 

10.看到一个变量num的值,然后我们输入print num,参看变量值

print num

 

11.输入c,程序继续执行

c

 

相应参数说明

1、file <文件名>

加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。

示例:(gdb) file gdb-sample

 

2、r

Run的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。

示例:(gdb) r

 

3、c

Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。

示例:(gdb) c

 

4、b <行号>

   b <函数名称>

   b *<函数名称>

   b *<代码地址>

 

b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。

其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。

5、set args [parameter]

gdb调试的时候,设置命令行参数。

 

6、bt

bt可以去查看堆栈信息。down和up和一个一个打印堆栈信息。bt直接打印全部堆栈信息。

 

7、n

单步调试

 

8、s

单步进入

猜你喜欢

转载自blog.csdn.net/dorevers/article/details/81697833