GDB调试C++代码-设置启动参数与断点及打印变量

一、编译时加上 -g调试信息并且去掉优化信息

在Makefile中增加-g调试信息并且去掉优化信息
将之前的Makefile中的文件内容
CC = g++ -std=c++11
OPT_LEVEL := -O2
改为
CC = g++ -std=c++11 -g
OPT_LEVEL :=

代码示例使用之前的TCP Client与Server
通用的Makefile编写与简单的TCP Server
通用的Makefile编写与简单的TCP Client
在这里插入图片描述

二、设置启动参数

gdb --args ./Client 127.0.0.1 6000 “hello this is a client”

说明:
–args:设置127.0.0.1 6000 "hello this is a client"为启动参数
在这里插入图片描述

三、设置断点

1、命令:l
说明:查看代码

2、命令:b 16
说明:在程序的第16行添加断点

3、命令:info break
说明:查看断点
在这里插入图片描述

四、开始调试

1、命令:r
说明:开始运行
2、命令:s
说明:进入函数内部
3、命令:n
说明:下一步
4、命令:finish
说明:跳出函数内部
在这里插入图片描述

五、打印变量

1、命令:p m_cliSocket
说明:打印m_cliSocket,十进制格式
2、命令:p/x m_cliSocket
说明:打印m_cliSocket,十六进制格式
3、命令:p/t m_cliSocket
说明:打印m_cliSocket,二进制格式
4、命令:p/o m_cliSocket
说明:打印m_cliSocket,八进制格式
在这里插入图片描述

六、退出

1、命令:q
说明:退出GDB调试,根据提示选y则退出
在这里插入图片描述

七、其他常用命令

1、在文件中某一函数处设置断点:b TcpClient.cpp:TcpClient::SenMsg
2、直接运行到下一个断点:c
3、查看调用堆栈:bt
在这里插入图片描述

4、删除断点:d 5
说明:5为断点序号,如果不加5则提示是否删除所有断点
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值