gdb调试

Posted maycpou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gdb调试相关的知识,希望对你有一定的参考价值。

查看本机是否安装了gdb:gdb --version

如果没有安装可以使用apt-get install gdb安装gdb

(1)调试一个简单的cpp文件:

test.cpp文件:

#include<stdio.h>

int main()

{

  int a = 5;

  int b = 6;

  int c = a+b;

  printf("the number is %d ",c);

}

要调试这个cpp文件,在用g++编译的时候需要添加一个-g的参数。首先编译这个文件:g++ -g -o test test.cpp,这样打包出来的test文件才可以用gdb调试,如果没有-g参数,打包出来的文件是不能调试的。

使用gdb调试打包出来的test文件:gdb test

然后机器会等待你输出命令,输入b 7,表示在第7行设置一个断点,这里你可以设置多个断点。然后输入run,程序会运行到你设置的第一个断点处停下来。这个时候你可以用print命令来打印出你想要查看的变量的值,如print(a),在测试这里会输出5。

如果要继续运行,可以再次使用run,会运行到下一个断点处停下。使用next,表示代码往下运行一行,如果是调用函数不会进入函数内部。使用step,也是往下运行一行,如果遇到函数调用则进入到函数的内部。

(2)如果要调试用CMake打包出来的程序,需要要CMakeList.txt文件中添加下面这几条语句:

SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

 

以上是关于gdb调试的主要内容,如果未能解决你的问题,请参考以下文章

代码调试篇:gdb调试快速入门指南

GDB代码调试与使用

GDB调试

使用GNU/gdb调试Linux C/C++可执行程序查看出错源代码、设置断点

代码调试工具GDB

代码调试篇:如何编写 gdb 自定义命令