C++ 程序在编译通过之后,执行c++二进制文件的时候,如果中途报错,比如空指针等常见的错误这个时候就需要用到gdb来进行调试,一步步的排查错误,那么什么是GDB哪,全程就是GNU symbolic debugger,专门用来调试程序的,比如我现在给展示一个简单的程序,生成的二进制文件genernater
Test_F(Testdemo,testlevel){
BDMap* bdmap;
Bamap->set_level(2,true);
}
这几行代码在编译的时候是不存在语法错误的,正常通过的,但是在执行二进制文件的时候会出现
Segementation fault (core dumped)这类的错误,咋一看看不出问题的根源来,这个时候就要用到gdb来
进一步的分析原因了。
gdb genernater然后再输入R,出现received signal SIGSEGV 这类的问题,这类的bug的解释是段错误是访问了不该访问的内存,也就是说你访问的这个地址不在系统给你分配的范围内,就是没有给new一个对象,并没有给该类的对象分配内存空间导致的。所以把BDMap* bdmap,改成BDMap* bdmap =new BDMap(),即可
GDB常用的命令如下:
Gdb r 运行这个程序
Gdb b 给默认给第一行打断点,如果gdb b num 就是给num行打断点进行调试
Gdb bt 就是查看堆栈的情况进行分析
Gdb q 就是退出当前的gdb调试程序,相当于quit
Gdb start 断点打在第一行main函数上面
GDB调试C++程序
最新推荐文章于 2025-10-26 15:52:28 发布
1591

被折叠的 条评论
为什么被折叠?



