当前位置: 首页 > news >正文

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.lryc.cn/news/385274.html

相关文章:

  • 聊一聊UDF/UDTF/UDAF是什么,开发要点及如何使用?
  • 配置Nginx二级域名
  • LeetCode——判断回文数
  • shell:使用结构化语句(for、while循环)
  • 数据结构_绪论
  • AI自动生成角色和情节连续的漫画,中山大学联想提出AutoStudio,可以多轮交互式连续生成并保持主题一致性。
  • 【经典面试题】RabbitMQ如何防止重复消费?
  • 如何自己录制教学视频?零基础也能上手
  • 【android】用 ExpandableListView 来实现 TreeView树形菜单视图
  • 策略模式与函数式编程应用
  • docker原理记录C-N-A
  • 【LeetCode】每日一题:二叉树的层次遍历
  • 单体架构改造为微服务架构之痛点解析
  • 马面裙的故事:汉服如何通过直播电商实现产业跃迁
  • SaaS产品运营:维护四个不同类型的合作伙伴的实战指南
  • 【监控】3.配置 Grafana 以使用 Prometheus 数据源
  • 【LinuxC语言】网络编程中粘包问题
  • Docker之jekins的安装
  • # bash: chkconfig: command not found 解决方法
  • Linux线程互斥锁
  • 展开说说:Android列表之RecyclerView
  • 等保2.0时,最常见的挑战是什么?
  • 基于Vue 3.x与TypeScript的PPTIST本地部署与无公网IP远程演示文稿
  • PHP的基本语法有哪些?
  • CSS的媒体查询:响应式布局的利器
  • 汇聚荣做拼多多运营第一步是什么?
  • NeRF从入门到放弃4: NeuRAD-针对自动驾驶场景的优化
  • docker环境部署ruoyi系统前后端分离项目
  • UI(二)控件
  • 【图像分类】Yolov8 完整教程 |分类 |计算机视觉