linux下的GDB调试 详细

版权声明:原创文章,转载请注明出处 https://blog.csdn.net/hza419763578/article/details/83513927
vim min.c
#输入min.c的内容
gcc min.c -o min -g #必须写-g
gdb -q min #调试可执行程序  -q是为了阻止显示版本信息
l # list 显示源代码 一次10行
l # list 显示源代码 接着10行
l # list 显示源代码 接着10行
l 1 #重新显示前10行  1可换成任意合法行号
b 10 #在第10行设置断点 
b min  #在min函数开始(第一天函数体语句)处设置断点
info b #查看断点信息 会具体显示在哪个文件哪一行
r #run 输入 程序才会执行 并停于断点处  
r #程序执行过程中再次输入r会提示是否重新开始执行 而并非continue放行
n #next 执行下一条语句 不进入函数 step over
s #step 执行下一条语句 进入函数 step into
p a1 #print 变量名 显示当前状态下的变量值,此处显示变量a1的值
c #continue 放行 执行到下一个断点处 若无断点则执行到程序结束
q #quit 退出gdb


vim min.c
#输入min.c的内容
gcc min.c -o min -g #必须写-g
gdb -q min #调试可执行程序  -q是为了阻止显示版本信息
l # list 显示源代码 一次10行
l # list 显示源代码 接着10行
l # list 显示源代码 接着10行
l 1 #重新显示前10行  1可换成任意合法行号
b 10 #在第10行设置断点 
b min  #在min函数开始(第一天函数体语句)处设置断点
info b #查看断点信息 会具体显示在哪个文件哪一行
r #run 输入 程序才会执行 并停于断点处  
r #程序执行过程中再次输入r会提示是否重新开始执行 而并非continue放行
n #next 执行下一条语句 不进入函数 step over
s #step 执行下一条语句 进入函数 step into
p a1 #print 变量名 显示当前状态下的变量值,此处显示变量a1的值
c #continue 放行 执行到下一个断点处 若无断点则执行到程序结束
q #quit 退出gdb

例子:

//min.c
#include<stdio.h>
int min(int x,int y);
int min(int x,int y){
	if(x<y)
		return x;
	else
		return y;
}
int main(){
	int a1,a2,min_int;
	printf("请输入第一个整数:");
	scanf("%d",&a1);
	printf("请输入第二个整数:");
	scanf("%d",&a2);
	min_int=min(a1,a2);
	printf("最小的整数是:%d\n",min_int);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/hza419763578/article/details/83513927