Linux下gdb使用整理记录

1.创建cpp文件:vim sourcefile.cpp

2.生成可执行文件:g++ -g sourcefile.cpp -o exename

------加上-g参数,才能输出调试信息; -o:指定生成的可执行文件名;-c:指定目标文件名

3.启动调试:输入gdb进入gdb环境

4.输入 file exename   (告诉gdb要调试了)

5.输入 l (list)查看代码,回车重复上一条命令

-----------------------list 的详细使用-----------------------------

----list  linenum  :显示linenum周围几行代码,我line 5 给我显示了1-10行代码

----list function   :显示函数function的实现代码

----list                :显示当前行后面的代码

----list -             :显示当前行前边的代码

----set listsize count :默认显示10行,可通过这个命令来更改每次显示的行数

----show listsize       :  查看当前listsize的设置。

----list  first, last     :显示从first行到last行之间的源代码.

----list  , last           :从当前行到last

----list +                 : 当前行以后的代码


一般来说在list后面可以跟以下这们的参数:

<linenum> 行号。
<+offset> 当前行号的正偏移量。
<-offset> 当前行号的负偏移量。
<filename:linenum> 哪个文件的哪一行。
<function> 函数名。
<filename:function> 哪个文件中的哪个函数。
<*address> 程序运行时的语句在内存中的地址。

6.断点设置:b main   在main函数入口加一个断点

-------break  5  :在第5行设置断点; i b  (info break) 查看断点信息  

7.输入 r (run)开始运行代码到断点处

8.输入 s  (step)单步进入函数

9.可以输入 n:单步调试;输入print var (缩写:p var)可以查看变量bar的值

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

10.调试结束,输入c (continue) 运行到结束

-----或者 q  (quit)退出

问题:如果代码错了,不能生成可执行文件该如何??

原文地址:https://www.cnblogs.com/lp3318/p/5628483.html