通信人家园

标题: GDB常用调试方式  [查看完整版帖子] [打印本页]

时间:  2019-4-4 10:36
作者: hbuxiaofei     标题: GDB常用调试方式

使用gdb调试之前,首先要利用gcc/g++生成可利用GDB调试的文件,然后在进行调试。

1.gcc/g++ 调试
    常采用的方式为gcc /g++  -g  -Wall  xx.c/cpp  -o  xx

其中gcc/g++根据不同的编译文件选择编译工具,-g表示编译器在编译的时候产生调试信息,-Wall表示生成所有警告信息,xx.c/cpp表示用于编译的源文件,-o 表示指定输出文件的文件名,xx表示生成的可执行文件。

2. gdb调试
(1)启动gdb的方法:

gdb <program>

也可以直接进入gdb调试界面,再用help来查看相关指令。
在写具体指令时可以用第一个字母,或者用tab键补齐

(gdb)b(break) func 或者 b(break) 4  在对应函数或行数处设置断点。
(gdb)clear linenumber 删除指定行的断点
(gdb)q  quit 退出gdb
(gdb)run 运行代码
(gdb)info break 查看断点信息
(gdb)n next 单条语句执行
(gdb)s 步入函数
(gdb)c 继续运行程序,continue命令简写
(gdb)p print xx 打印变量xx的值
(gdb)display xx  显示xx值  将会一直显示用来监听
(gdb)bt  查看函数堆栈
(gdb)finish  退出函数
(gdb)info threads  显示当前线程

(2) cmake-gdb
如果用使用cmake-gdb,则需要在cmake中添加一下代码。
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")

add_executable(XX  XX/X)

从而可直接使用gdb <program>进行程序调试






通信人家园 (https://www.txrjy.com/) Powered by C114