通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2017-9-6
跳转到指定楼层
1#
发表于 2019-4-4 10:36:38 |只看该作者 |倒序浏览
使用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>进行程序调试

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-29 03:51 , Processed in 0.096515 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部