Linux --调试器gdb和cgdb

我们举个例子:首先写一个简单的代码来带入,一个例子简单学会调试器

再写一个 自动化构建项目Makefile:

先make ,生成可执行程序

然后

在xshell中输入:gdb mycmd,启动调试器;输入quit,退出gdb,

下图表示未找到调试信息 :

程序的发布方式有两种, debug 模式和 release 模式, Linux gcc/g++ 出来的二进制程
序,默认是release 模式。
要使用gdb调试,必须在源代码⽣成⼆进制程序的时候, 加上 -g 选项,如果没有添加,程序无法被
编译

给用户必须是release版本的软件,因为体积小哦!!!

要是想调试,需要在gcc后面加一个 -g 就可以了

下一步:make之后就

如上图:很明显debug的大小比mycmd版本大,里面包含了调试信息

接下来调试这个debug版本的:

输入 l (list)查看代码:

可以完整的把代码演示出来。

输入r进行编译,结果完成。

但是在调试过程中,最重要的是打断点,

b 20 ,在行号为20的地方打了一个断点。

此时此刻,我们可以使用一个cgdb 来进行调试:

此时会处于一种分屏状态

在行号16打断点,

结果为在16行号颜色变红:

让它跑起来:输入r

以下是cgdb一些快捷键实现的具体功能。

以下三个:帮助我们确认问题的大致范围。逐过程,逐语句。 排查问题->分析问题->解决问题

until允许我们运行一个函数内的指定区域的代码

相关推荐
D2aZXN3FhrDa7e2122 分钟前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
无足鸟ICT25 分钟前
【RHCA+】查看变量
linux·运维·服务器
Kina_C35 分钟前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns
EasyGBS1 小时前
ONVIF设备接入国标GB28181视频平台EasyGBS:不用国标也能一键拉流!
服务器·php·音视频
suaizai_1 小时前
TypeScript 7 正式发布!Vue 暂被 “拒之门外“ !!!
linux·运维·ubuntu
小小代码狗2 小时前
SQLi-Labs 基础注入实战教程(Less-1 ~ Less-5and Less-9)
服务器·python·php
慕伏白2 小时前
【慕伏白】Linux 系统如何根据端口号关闭进程
linux·运维·服务器
letisgo52 小时前
VMware Workstation + Ubuntu 26.04 LTS 小白运维部署手册
linux·运维·ubuntu
蓝创工坊Blue Foundry2 小时前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
IT探索2 小时前
Linux 查找文件指令总结
linux·算法