Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1769|回复: 2
打印 上一主题 下一主题

使用GDB调试

[复制链接]

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
跳转到指定楼层
楼主
发表于 2017-9-6 16:19:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 firemail 于 2017-9-7 17:08 编辑

(gdb) l     <-------------------- l命令相当于list,从第一行开始例出原码。
(gdb)       <-------------------- 直接回车表示,重复上一次命令
(gdb) break 16    <-------------------- 设置断点,在源程序第16行处。
(gdb) break func  <-------------------- 设置断点,在函数func()入口处。
(gdb) info break  <-------------------- 查看断点信息。

(gdb) r           <--------------------- 运行程序,run命令简写
(gdb) n          <--------------------- 单条语句执行,next命令简写。
(gdb) c          <--------------------- 继续运行程序,continue命令简写。
(gdb) p i        <--------------------- 打印变量i的值,print命令简写。
(gdb) bt        <--------------------- 查看函数堆栈。
(gdb) s        <--------------------- 进入函数内部。stepin 简写s
(gdb) finish    <--------------------- 退出函数。
(gdb) q     <--------------------- 退出gdb。

断点的删除
delete [breakpoints num] [range...]
d 5
回复

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
沙发
 楼主| 发表于 2017-9-6 16:36:24 | 只看该作者
cmake调试支持:
CMakeLists.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")  

回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
板凳
 楼主| 发表于 2017-9-7 16:13:51 | 只看该作者
gdb下输入参数
则,运行gcc/g++ -g  prog.c/cpp -o prog
就可以用gdb调试程序prog
#gdb prog
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args -l a -C abc
回车后输入
r
即可开始运行

回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-30 16:27 , Processed in 0.056947 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表