当前位置:网站首页>gdb调试常用概念整理
gdb调试常用概念整理
2022-07-29 13:13:00 【标biao】
GDB 调试模型
主要又两种调试模型:代码调试跟踪与优化(一)--- 如何用GDB 调试代码?_流云IoT的博客-CSDN博客
- 本地调试:调试程序和被调试程序运行在同一台电脑中。
- 远程调试:调试程序运行在一台电脑中,被调试程序运行在另一台电脑中(或者嵌入式开发板)。红线表示GDB(也叫host)与GdbServer(也叫target)之间通过串口线或者网络进行通讯(GdbServer会进行端口监听,比如3333,GDB进行remote target 3333这样进行连接上),用于传输GDB 调试消息的通讯协议可以称为GDB Remote Serial Protocol(GDB RSP)。GDP RSP 报文主要包括四个部分,固定的开始字符(’$’)和结束字符(’#’),中间的调试消息数据以及最后的校验和。可参阅文档:Howto: GDB Remote Serial
注意:就算GDB和被调试程序在一台电脑上,我们仍然可以采用这种远程调试的方式。
GDB 调试功能
GDB 主要有2种调试功能:
- gdb program:使用GDB 开始执行被调试程序program,可通过GDB 命令控制program 的行为;
还可以:gdb program core:使用GDB 同时执行被调试程序program 和core 文件(程序异常中止或退出时,保存的内存映像加调试信息文件,包含程序当前的内存、寄存器、堆栈等信息),便于定位分析程序异常中止或退出的原因; - gdb attach PID (gdb -p PID):使用GDB 接管(attach)一个正在运行的被调试程序,PID 为被调试程序的process-ID(可通过pidof program 查看),可通过GDB 命令控制program 的行为。
GDB 调试命令接口类型
主要有3种接口:关于调试器和IDE的一些认识_标biao的博客-CSDN博客_ide调试器
- cll接口,就是用户接口,我们在命令行执行gdb进行调试,输入的下一步,打断点等命令,就算这个接口
- mi接口,也就是机器接口,专门成为别人的IDE的后端发命令的(很多主流IDE都是用这个)。
- 还有个emacs编辑器版的接口,估计是为了给编辑器diy爱好者用的。
参考文章:
嵌入式调试GDB使用_标biao的博客-CSDN博客_gdb 嵌入式
系统gdb内核调试应用程序断点单步执行调试原理_标biao的博客-CSDN博客_gdb单步调试原理
gdb的使用以及命令大全非调试状态直接读取调试信息_标biao的博客-CSDN博客
GDB实现原理_标biao的博客-CSDN博客_gdb实现原理
关于ELF格式文件里面的调试信息解读_标biao的博客-CSDN博客_elf调试信息
边栏推荐
猜你喜欢
随机推荐
Sqoop导入导出时数据内存溢出
C语言小游戏------贪吃蛇----小白专用
Leetcode65. 有效数字
mariadbackup物理备份使用——筑梦之路
Mysql stored procedures, rounding
DVWA全级别通关教程
inner join 与 left join 之间的区别
70行代码撸一个桌面自动翻译神器!
如何监控海外服务器性能
一起来侃个球
SIP system composition format
常坐飞机的你,为什么老惦记着“升舱”?
码蹄集 tourist
conda环境创建及复制
Super young!34-year-old professor, vice president of 985 Ace College!
npm出现报错 npm WARN config global `--global`, `--local` are deprecated. Use `--location=global
MySQL常用的日期时间函数
即时通讯场景下安全合规的实践和经验
HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
2022年年中总结:行而不辍,未来可期