文章目录
调试器 - gdb/cgdb使⽤
调式的代码
cpp
#include<stdio.h>
int Sum(int s ,int e){
int result = 0;
for(int i = s;i <= e; ++i){
result += i;
}
return result;
}
int main(){
int start = 1;
int end = 100;
printf("开始\n");
int n = Sum(start, end);
printf("%d,%d,%d\n", start, end, n);
return 0;
}
调式
- 程序的发布方式有两种,debug模式和release模式,Linux gcc/f++出来的二进制程序,默认是release模式。
- 要使用gbd调式,必须在源代码生成二进制程序的时候,加上-g选项,如果没有添加,程序无法被编译。
常见使用
进入调式
shell
cgdb 调式文件
推出调式
- ctrl+d 或 quit调式命令
常见命令
-list/l :显示源代码,从上次位置开始,每次列出10行。

-
list/l 函数名 ;列出指定函数的源代码。

-
list/l 文件名 : 行号 : 列出指定文件的源代码。

-
r/run :从程序开始连续执行。

-
break/b 文件名:行号 :在指定行号设置断点。
-
break/b 函数名 :在函数开头设置断点。

-
n/next : 单步执行,不进入函数内部。

-
s/step:单步执行,进入函数内部。

-
info break/b:查看当前所有断点的信息。

-
finfish : 执行到当前函数返回,然后停止。

-
print/p:打印表达式的值。

-
set var:修改变量的值。
-
continue/c : 从当前位置开始连续执行程序。
-
delete/d :删除所有断点。

-
disable beakpoints:禁用所有断点。
-
enable breakpoints:启用所有断点。
-
info/i breakpoints:查看当前设置的断点列表。
-
display 变量名:跟踪显示指定变量的值。
-
undisplay 编号:取消对指定编号的变量的跟踪显示。
-
until 行号:执行到指定行号。
-
backtrace/bt:查看当前执行栈的各级函数调用及参数。
-
info/i locals:查看当前栈帧的局部变量值。

觉得我回答有用的话,记得点个关注哟!谢谢支持!