gdb用法

创建文件

// main.cpp文件

// 稳态误差
void pid_test_wentaiwucha()
{float p = 1.5;int t = 1;              // t = 1s;int target = 5;         // 5m/sfloat output = 0;float radis = 3;        // 稳态误差std::cout << "output:   " << std::endl;for(int i = 0; i < 30; i++){std::cout << output << ", ";float error = target - output;output += p * error * t - radis;}
}//下述代码是模仿话哦的那个窗口代码用于调试
int main()
{pid_test_wentaiwucha();return 0;
}

编译文件

使用指令编译出main.out文件

g++ -g main.cpp -o main.out

使用指令开启gdb调试

gdb ./main.out

显示如下

GNU gdb (GDB) EulerOS 8.3.1-12.h1.eulerosv2r9
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-openEuler-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
--Type <RET> for more, q to quit, c to continue without paging--

直接回车进入gdb模式

添加断点指令

(gdb) b main.cpp:13			// 断在文件的某行
// 或者
(gdb) b main				// 断在某个函数名

比如断在pid_test_wentaiwucha函数,使用指令

(gdb) b pid_test_wentaiwucha	

显示如下

(gdb) b pid_test_wentaiwucha
Breakpoint 1 at 0x401255: file main.cpp, line 149.

使用指令info查看断点

(gdb) info b			// 查看所有断点
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000401255 in pid_test_wentaiwucha() at main.cpp:149
2       breakpoint     keep y   0x0000000000401269 in pid_test_wentaiwucha() at main.cpp:152

使用下述指令开始程序调试

(gdb) r

使用下述指令开始程序调试单步运行

(gdb) n							// next 单步调试

如果直接回车是默认使用上一次指令

如果使用下述指令可以快速运行到下一个断点

(gdb) c

使用下述指令可以查看某个变量变化(需研究)

(gdb) watch t				//监视t的值发生变化

对于watch指令,如果是全部变量可以直接看,如果不是全局变量可能需要程序跑到函数里才能watch

使用下述指令可以进入函数调试

(gdb) watch s

使用下述指令可以查看变量值,如果是局部变量需要等进入函数内可以查看

(gdb) p t				// 查看变量t的值。

使用下述指令可以打开调试窗口

(gdb) layout src

在这里插入图片描述

使用下述指令可以暂时开关窗口

1、ctrl+x
2、a

使用下述指令可以打开汇编窗口

layout asm

使用下述指令可以单步调试汇编窗口

si

cMwQ-1719488930729)]

使用下述指令可以暂时开关窗口

1、ctrl+x
2、a

使用下述指令可以打开汇编窗口

layout asm

使用下述指令可以单步调试汇编窗口

si

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发 多线程

目录 thread thread 类总览 构造函数 join joinable ​编辑 detach swap yield swap 成员函数的调用 namespace::this_thread 线程同步--锁 互斥锁mutex 递归锁recursive_mutex 定时锁 Lock 锁辅助类 lock_guard​编辑 unique_lock std::lock 解决死锁问题 消息…

浅谈逻辑控制器之随机顺序控制器

浅谈逻辑控制器之随机顺序控制器 随机顺序控制器&#xff08;Random Order Controller&#xff09;作为一个独特的逻辑控制器&#xff0c;为测试脚本的执行增添了一层随机性&#xff0c;特别适用于模拟用户行为中不确定的访问模式。 随机顺序控制器概述 随机顺序控制器&…

代码随想录算法训练营第三十六天|62.不同路径、 63. 不同路径 II、343.整数拆分(可跳过)、96.不同的二叉搜索树(可跳过)

62.不同路径 题目链接&#xff1a;62.不同路径 文档讲解&#xff1a;代码随想录 状态&#xff1a;还行 思路&#xff1a;当前状态的只有可能是从上面或者左边过来的&#xff0c;所以 dp[i][j] dp[i-1] dp[j-1] 题解&#xff1a; public int uniquePaths(int m, int n) {if (…

Docker 安装Nginx部署网站 防火墙端口 数据卷挂载

拉取镜像 docker pull nginx#不写版本号 表示最新版本查看是否拉取成功 docker images#成功 nginx latest 605c77e624dd 2 years ago 141MB mysql 8.0 3218b38490ce 2 years ago 516MB mysql latest 3218b38490ce 2 years ago 5…

virtualbox(7.0) ubuntu(22) 和win11共享文件夹

在虚拟机中安装增强功能。在virtualbox中配置 执行命令将用户加入vboxsf组 sudo adduser your_usrname vboxsf 重启ubuntu即可

LeetCode 585, 438, 98

目录 585. 2016年的投资题目链接表要求知识点思路代码 438. 找到字符串中所有字母异位词题目链接标签思路代码 98. 验证二叉搜索树题目链接标签合法区间思路代码 中序遍历思路代码 585. 2016年的投资 题目链接 585. 2016年的投资 表 表Insurance的字段为pid、tiv_2015、tiv…

Charles网络抓包工具手机抓包配置(二)

目录 事前配置 配置手机连接 代理设置 Https请求设置 手机安装根证书 手机连接代理 证书获取​编辑 证书安装 成果 前言-与正文无关 ​ 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们…

CesiumJS【Basic】- #020 加载glb/gltf文件(Primitive方式)

文章目录 加载glb/gltf文件(Primitive方式)1 目标2 代码实现3 资源文件加载glb/gltf文件(Primitive方式) 1 目标 使用Primitive方式加载glb/gltf文件 2 代码实现 import * as Cesium from "cesium";const viewer = new Cesium.Viewer

ElementPlus Combogrid 组件

效果图: 1.声明 Props类型 export type comboGridPropType { modelValue: any; url: string; keyField?: string; labelField?: string; filterOptions?: Array<ISearchOption>; tableColumns?: Array<TableColumns>; enableField?: string; multiple?: …

Psychtoolbox 脑电实验范式之mp4视频绘制

1. 读取 首先需要使用到Screen(‘OpenMovie’)函数&#xff0c;该函数可以读取mp4、gif格式的数据&#xff0c;具体方式如下&#xff1a; clear; clc; Screen(Preference, SkipSyncTests, 1); screens Screen(Screens); screenNum max(screens); [window, screenRect] Scr…

C++语法20 一维数组及其相关问题详解

这是《C算法宝典》语法入门篇的第20节文章啦~ 如果你之前没有太多C基础&#xff0c;请点击&#x1f449;专栏&#xff1a;C语法入门&#xff0c;如果你C语法基础已经炉火纯青&#xff0c;则可以进阶算法&#x1f449;专栏&#xff1a;算法知识和数据结构&#x1f449;专栏&…

串口通信中字符和16进制显示的区别分析,串口发送数据

分析的原因 在对串口传送数值时&#xff0c;不想再进行一步字符转化&#xff0c;想要直接传送数值。但查看时就需要以16进制的数值形式查看数据&#xff0c;否则将不能看到正确的数据显示 下图是对串口寄存器发送一个16bit位的数据 void uart0Senduint16(UINT16 dat){SBUFdat…

element-plus 日期选择添加确定按钮

需求&#xff1a;选择日期后&#xff0c;点击确定按钮关闭面板 思路&#xff1a; 使用shortcuts自定义确定和取消按钮选择日期后使用handleOpen()强制开启面板点击确定后使用handleClose()关闭面板 <template><el-date-pickerref"pickerRef"v-model"…

【Android11】开机启动日志捕捉服务

一、前言 制作这个功能的原因是客户想要自动的记录日志中的报错和警告到设备的内存卡里面。虽然开发者模式中有一个“bug report” 会在/data/user_de/0/com.android.shell/files/bugreports/目录下生成一个zip包记录了日志。但是客户觉得这个日志很难获取到他们需要的信息&am…

基于盲信号处理的声音分离——基于自然梯度的ICA算法

基于自然梯度的ICA算法主要利用相互独立的随机信号的联合概率密度是各自概率密度的乘积这一特性&#xff0c;建立了等独立性度量原则&#xff0c;具体实现如下。 首先&#xff0c;输出信号 相互独立&#xff0c;则其概率密度满足 上式中 表示 的概率密度函数&#xff0c;可以…

怎么扫描图片变成pdf格式?办公人士值得收藏的宝藏工具

将图片扫描并转换为PDF格式可以通过多种途径实现&#xff0c;无论是使用专业的扫描仪还是智能手机&#xff0c;都有相应的方法。 PDF 是什么&#xff1f; PDF&#xff0c;全称为 Portable Document Format&#xff08;便携式文档格式&#xff09;&#xff0c;是由Adobe System…

12,SPI

Flash芯片&#xff1a;W25Q64&#xff0c;可以看成一个储存器 W25Q64芯片和单片机之间的通信方式是SPI SPI:串行同步全双工&#xff0c;主从通信 判断一个设备是不是SPI通信&#xff0c;看是否有这几个线&#xff1a;SCK&#xff0c;CS&#xff0c;MISO&#xff0c;MOSI SCK…

Altium Designer软件下载安装「PCB设计软件」安装包资源获取

Altium Designer作为一款集成化的电子产品开发系统&#xff0c;它主要适用于Windows操作系统&#xff0c;为电子设计工程师们提供了一个高效、便捷的工作平台。 在Altium Designer中&#xff0c;原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出…

vuex的学习

vuex vuex是个插件&#xff0c;用于多个组件操作共享变量 引入&#xff1a;数字操作案例 基于组件自定义事件而实现的操作数字案例如下&#xff1a; App.vue <template><div id"app"><input class"num_input" type"text" v…

LeeCode 994. 腐烂的橘子

原题链接994. 腐烂的橘子 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;采用bfs遍历图&#xff0c;将烂橘子加入队列&#xff0c;然后将被烂橘子感染的橘子也加入队列&#xff0c;bfs的具体细节就不多说了&#xff0c;可以自己去搜&#xff0c;很简单&#xff0c;…