Linux学习笔记-使用gdb调试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq78442761/article/details/82085895

使用gdb调试

在Linux使用gdb命令进行单步调试
在compile这一步添加-g

如:
g++ -g main.cpp -o hellowrld

在Makefile里面
%.o: %.cpp
    g++ -c -g -MMD $< -0 $@

进入gdb界面后,使用命令来操作调试过程
gdb ./helloworld
b(break):添加断点;
r(run):重头开始运行程序;
n(next):下一步;
c(continue):程序继续运行,直到下一处断点,或者程序运行结束;
q(quit):退出程序界面;
p(print):显示某个的值;
disp(display):监视变量,相当于VC下的watch;
x显示内存的值:x/16xb buf【x:以16进制显示,b单位是1字节】
注意:可以输入全称break,也可以只输入b

main.cpp源码如下:

#include <stdio.h>

int main(){
	int a=100;
	int b=200;
	int result=a*b;
	printf("The result is %d\n",result);
	char buf[64]="Hello World!\n";
	int data[4]={5,6,7,8};
	return 0;
}

下面来看下运行截图:

编译程序以及进入gdb界面:

添加断点:

b main (加上函数名)

b main.cpp(文件名+行号)

b 12(当前文件的行号)

b Object::Create(类名+成员函数)

显示断点info break

删除断点:del break 2(这个2为编号)

打印变量:

监视变量,以及打印内存:

x 显示内存的值
x/16xb buf 其中,
16: 显示16个单位
x: 以十六进制显示 (x d u f s ...)
b: 单位是1字节 (可选 b h w g )
byte, half‐word, word, giant

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/82085895