| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 【GDB调试-1】认识GDB -> 正文阅读 |
|
[系统运维]【GDB调试-1】认识GDB |
一、GDB是什么?GDB是GUN项目的调试器,允许查看正在执行的程序里面在做什么,或者是程序崩溃的瞬间在做些什么。 GDB可以完成如下四种功能,在这些功能的基础上也可以做其他的事情:
GDB可以在本地运行,也可以在远程运行(嵌入式平台,或者通过端口映射等方式进行远程访问),也可能是虚拟机里面运行,对于操作环境,覆盖了Unix和类Unix系统,Windows,Macos,我们主要接触到的桌面级操作系统就这三类,除此之外GDB也可以进行移植支持到其他系统,安装GCC交叉编译工具集的时候不包含GDB工具,可以通过不同类型的编译工具链对源码进行编译和安装。 二、GDB的安装2.1 GDB可以解决哪些问题工欲善其事,比先利其器,GDB绝对是调试bug的一把利器,下面是一些GDB能解决的问题:
GDB其本质上是对错误程序中出现的问题进行逆向工程,通过对问题的调试可以获得编程经验,从而应用到其他问题上的解决上。 除了GDB之外还有binutils工具,但是两者实现的功能不一样,使用binutils只能静态分析程序和程序产生的文件,GDB属于动态分析工具,在程序执行的时候可以直接进行调试。 2.2 GDB的安装在CentOS上的安装:yum install gdb 三、GDB常用操作
四、GDB常用指令4.1 GDB启动4.1.1 启动方式:
4.1.2 GDB启动示例1、带参数执行程序:
2、链接到目标进程执行:
3、使用GDB调试stm32(此处需要安装st-util来连接stm32作为客户端,安装st-flash之后就会有st-util):
4.2 断点管理4.2.1 断点的分类
4.2.2 设置断点
4.2.3 查看断点
后面三个是缩写形式,会显示当前所有断点信息和对应编号 4.2.4 启用/禁用断点
有时候我们需要暂时禁用断点,但是后面又会继续使用,如果使用添加和删除断点这样非常麻烦,所以可以使用禁用断点来实现。 4.2.5 删除断点
4.3 GDB控制程序执行4.3.1 跳过当前断点n次
当程序执行到断点时候会停下来,使用continue可以让程序继续运行,但是如果加上一个数字则可以让当前断点在执行n次之后再停下,例如:continue 8 ,这条指令会再继续执行7次后停下来,这个8包含当前命中的这一次 4.3.2 继续执行到当前函数执行完
如果用函数名设置了一个断点,在程序执行到停止后输入finish,将在函数执行完成后停下。 4.3.3 强制函数立即返回
4.3.4 单步执行
遇到的是函数会进入到函数中,遇到的不是函数就直接到下一行代码处。 4.3.5 逐过程执行
遇到代码如果是函数会将整个函数执行完到下一行代码暂停,遇到的不是函数和单步执行一样。 4.3.6 执行到目标行
4.3.7 跳转执行
4.4 变量/参数4.4.1 查看参数
4.4.2 查看/修改变量
4.4.3 自动显示变量
4.5 显示源代码
4.6 查看内存
4.7 查看寄存器
在上述指令后面还可以加上寄存器名字显示指定的寄存器。 4.8 栈当进行函数调用的时候会将寄存器和参数,临时变量等放入到栈中,所有这些消息称之为栈帧,每进行一次函数调用就会有一个新的栈帧,里面包含了程序运行时的状态,对于分析问题非常重要,在x86中依靠基址寄存器和栈顶指针维护栈空间,所有栈帧之间构成了一个链表。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 9:47:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |