Sloppy's Blog

GDB调试入门(1)

基于:MinGW,安装好之后,设置环境变量,在Path追加,(我是安装在:)D:\MinGW\bin

主程序代码:

// 头文件引用
int main(int argc,char *argv[])
{
std::cout << “hello, world” << std::endl;
int result = MediaUtils::add(10,3);
std::cout << result << std::endl;
return(0);
}

MediaUtls.h:

class MediaUtils
{
public:
static int add(int x,int y);
};

MediaUtls.cpp:

// 头文件引用
int MediaUtils::add(int x,int y){
int result = x+y;
return result;
}

编写makefile文件,内容如下:

###简单的编写配置,-g是需要添加,不会会提示找不到debug symbol 相关信息

HelloWorld: HelloWorld.o MediaUtils.o

g++ -g HelloWorld.o MediaUtils.o -o HelloWorld

HelloWorld.o:main.cpp

g++ -g -c main.cpp -o HelloWorld.o

MediaUtils.o:MediaUtils.cpp

g++ -g -c MediaUtils.cpp -o MediaUtils.o

在代码文件目录命令执行:mingw32-make

进入GDB,

命令行输入:gdb

file HelloWorld.exe //载入

list // 列出文件内容

run // 运行

break main.cpp:5 //打断点

用到的相关命令参考:

  1. list <显示源代码>
  2. break 行号 <设置断点>
  3. run <运行程序>
  4. continue <继续从断点处执行>
  5. print 变量 <调试时查看变量的值>
  6. del 行号 <删除断点>
  7. step <单步执行,可跟踪到函数内部>
  8. next <单步执行,不可跟踪到函数内部>
  9. quit <退出>