当前位置:网站首页>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调试信息
边栏推荐
猜你喜欢
随机推荐
torch使用总结
Framework common annotation explanation
Scala 简介一
The torch using summary
The whole process of installing Oracle database on CentOS7
MySQL八股文背诵版
What should I do if the webpage is hijacked and redirected?Release net repair method
leetcode134. 加油站
2022年七夕情人节有什么值得推荐的礼物选择?实用且高级礼物推荐
[Numpy] 创建数组
C语言小游戏------贪吃蛇----小白专用
浅谈防勒索病毒方案之主机加固
mysql 存储过程详解
[Numpy] np.select
Create and copy conda environment
一口气说出4种主流数据库ID自增长,面试官懵了
2022年年中总结:行而不辍,未来可期
了解 AQS 底层原理
电子游戏的核心原理
【kaggle】Spaceship Titanic - 预测哪些乘客被运送到另一个维度【CatBoost - 10%】









