0
点赞
收藏
分享

微信扫一扫

gdb调试常用概念整理


GDB 调试模型

主要又两种调试模型:​​​​

  1. 本地调试:调试程序和被调试程序运行在同一台电脑中。
  2. gdb调试常用概念整理_gdb调试知识


  3. 远程调试:调试程序运行在一台电脑中,被调试程序运行在另一台电脑中(或者嵌入式开发板)。红线表示GDB(也叫host)与GdbServer(也叫target)之间通过串口线或者网络进行通讯(GdbServer会进行端口监听,比如3333,GDB进行remote target 3333这样进行连接上),用于传输GDB 调试消息的通讯协议可以称为GDB Remote Serial Protocol(GDB RSP)。GDP RSP 报文主要包括四个部分,固定的开始字符(’$’)和结束字符(’#’),中间的调试消息数据以及最后的校验和。可参阅文档:​​Howto: GDB Remote Serial​​
  4. gdb调试常用概念整理_运维_02


  5. 注意:就算GDB和被调试程序在一台电脑上,我们仍然可以采用这种远程调试的方式

 

GDB 调试功能

GDB 主要有2种调试功能:

  1. gdb program:使用GDB开始执行被调试程序program,可通过GDB 命令控制program 的行为;
    还可以:gdb program core:使用GDB 同时执行被调试程序program 和core 文件(程序异常中止或退出时,保存的内存映像加调试信息文件,包含程序当前的内存、寄存器、堆栈等信息),便于定位分析程序异常中止或退出的原因;
  2. gdb attach PID (gdb -p PID):使用GDB接管(attach)一个正在运行的被调试程序,PID 为被调试程序的process-ID(可通过pidof program 查看),可通过GDB 命令控制program 的行为。

 

GDB 调试命令接口类型

主要有3种接口:​​​​

  1. cll接口,就是用户接口,我们在命令行执行gdb进行调试,输入的下一步,打断点等命令,就算这个接口
  2. mi接口,也就是机器接口,专门成为别人的IDE的后端发命令的(很多主流IDE都是用这个)。
  3. 还有个emacs编辑器版的接口,估计是为了给编辑器diy爱好者用的。


 


举报

相关推荐

0 条评论