LinuxCC开发人员要熟练掌握GD

一、启动GDB调试

使用GDB调试程序一般有三种方式:gdbfilenamegdbattachpidgdbfilenamecorename

1、直接调试目标程序

2、附加进程

3、调试core文件

各个参数的说明如下:参数名称参数含义(英文)参数含义(中文)%pinsertpidintofilename添加pid到core文件名中%uinsertcurrentuidintofilename添加当前uid到core文件名中%ginsertcurrentgidintofilename添加当前gid到core文件名中%sinsertsignalthatcausedthecoredumpintothefilename添加导致产生core的信号到core文件名中%tinsertUNIXtimethatthecoredumpoccurredintofilename添加core文件生成时间(UNIX)到core文件名中%hinserthostnamewherethecoredumphappenedintofilename添加主机名到core文件名中%einsertcoredumpingexecutablenameintofilename添加程序名到core文件名中

二、GDB常用的调试命令概览

先给出一个常用命令的列表,后面会结合具体的例子详细介绍每个命令的用法。

命令名称命令缩写命令说明runr运行一个程序continuec让暂停的程序继续运行nextn运行到下一行steps如果有调用函数,进入调用的函数内部,相当于stepintountilu运行到指定行停下来finishfi结束当前调用函数,到上一层函数调用处returnreturn结束当前调用函数并返回指定值,到上一层函数调用处jumpj将当前程序执行流跳转到指定行或地址printp打印变量或寄存器值backtracebt查看当前线程的调用堆栈framef切换到当前调用线程的指定堆栈,具体堆栈通过堆栈序号指定threadthread切换到指定线程breakb添加断点tbreaktb添加临时断点deletedel删除断点enableenable启用某个断点disabledisable禁用某个断点watchwatch监视某一个变量或内存地址的值是否发生变化listl显示源码infoinfo查看断点/线程等信息ptypeptype查看变量类型disassembledis查看汇编代码setargs设置程序启动命令行参数showargs查看设置的命令行参数

三、GDB常用命令详解

本课的核心内容如下:

run命令continue命令break命令backtrace与frame命令infobreak、enable、disable和delete命令list命令print和ptype命令

为了结合实践,这里以调试Redis源码为例来介绍每一个命令,先介绍一些常用命令的基础用法,某些命令的高级用法会在后面讲解。Redis源码下载与debug版本编译Redis的最新源码下载地址可以在Redis


转载请注明:http://www.aierlanlan.com/tzrz/6790.html

  • 上一篇文章:
  •   
  • 下一篇文章: