C++初学者指南-4.诊断---用gdb调试

news2024/11/20 11:28:22

C++初学者指南-4.诊断—用gdb调试

幻灯片
在这里插入图片描述
gdb / 前端

gdbGNU的命令行调试器
cgdb基于终端的gdb前端
Linux安装:sudo apt-get install cgdb
gdbgui基于浏览器的gdb前端
网址:https://gdbgui.com/
安装:sudo pip install gdbgui
Qt Creator可以连接gdb
Visual Studio Code可以连接gdb
Vim"termdebug"包包含在Vim 8.1中

在这里插入图片描述
示例:sum.cpp,根据命令行参数进行等差数列的累加求和计算。
在这里插入图片描述
用于调试的编译

  • 在执行文件中增加调试信息,注意“-g”参数。
  • 避免优化等级为-O1、 -O2、 -O3,使用 -O0或 -Og参数替代。

在这里插入图片描述
启动调试器
在这里插入图片描述
你现在处于gdb的控制台中。
在这里插入图片描述
运行您的程序
带命令行参数运行
在这里插入图片描述
程序结束
在这里插入图片描述
设置断点

命令程序停止在…
break 12在当前激活的源代码文件第12行
break sum_up_to函数sum_up_to在所有源代码文件中的第一个可执行代码行
break sum.cpp:7源代码文件sum.cpp的第7行
(如果不在同一目录中,请使用相对路径名或完整路径名)
break sum.cpp:main在sum.cpp源文件中的main函数的第一个可执行代码行

在这里插入图片描述
单步执行你的程序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管理断点

info breakpoints显示所有断点
delete删除所有断点
delete 1删除1号断点
clear在下一条指令中删除断点
disable 2禁止2号断点
enable 2使能2号断点
save breakpoints file保存断点到文件
source file载入文件中的断点

在这里插入图片描述
在这里插入图片描述
有用的gdb命令

按键/命令快捷命令解释
<Enter>重复前个命令
<Tab>完整的命令或函数名
run [<arg>…]r [<arg>…]运行程序(带命令行参数)
break <loc>b <loc>在函数开始或者指定行设置断点
steps执行下一条指令,进入函数单步执行
nextn执行下一条指令,不进入函数单步执行
jump <loc>j <loc>跳转到指定位置(用于退出长循环或无限循环)
continuec继续执行程序直到下个断点或者程序结束
until <loc>u <loc>继续执行直到指定位置(函数或某行)
finishfin完成(跳出)当前函数
print <expression>p打印表达式的值,例如:变量
info breakpointsi b列出所有断点
info localsi locals列出所有局部变量和其值
backtracebt显示调用堆栈

gdb前端
cgbd (Linux/Win/MacOS/WSL)

  • 在命令行中运行
  • 分屏显示,带有源代码窗口
  • 显示断点和当前指令
  • 在Ubuntu/Debian/WSL中安装:sudo apt install -y cgdb

gdbgui

  • 基于浏览器的 GDB 前端
  • 通过 pip 安装: sudo pip install gdbgui

DDD (Linux/Win/WSL/X-Server)

  • 官方 GNU 调试器前端
  • 用户界面有点老式,但实际上如果你花一些时间使用它,它非常有用。
  • 在Ubuntu/Debian/WSL中安装: sudo apt install -y ddd

WinDBG (Win)
在 Microsoft Visual Studio 中的GDB调试器。

seer (Linux)
相对较新的基于Qt的GDB GUI前端

Online GDB
适用于 C、C++、Python 和许多其他语言的在线编译器和调试器工具。

附上原文链接
如果文章对您有用,请随手点个赞,谢谢!^_^

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

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

相关文章

Vite: 近几个版本的更新

概述 在 2021 年 2 月&#xff0c;尤大正式推出了 Vite 2.0 版本&#xff0c;可以说是 Vite 的一个重要转折点&#xff0c;自此之后 Vite 的用户量发生了非常迅速的增长&#xff0c;很快达到了每周 100 万的 npm 下载量。同时&#xff0c;Vite 的社区也越来越活跃&#xff0c;…

实验3-Spark基础-Spark的安装

文章目录 1. 下载安装 Scala1.1 下载 Scala 安装包1.2 基础环境准备1.3 安装 Scala 2. 下载安装 Spark2.1 下载 Spark 安装包2.2 安装 Spark2.3 配置 Spark2.4 创建配置文件 spark-env.sh 3. pyspark 启动4. 建立/user/spark文件夹 1. 下载安装 Scala 1.1 下载 Scala 安装包 下…

Redis 八股文

标题 1. Redis主从同步原理&#xff1a;判断下线的条件:故障转移如何保证Sentinel高可用 1. Redis主从同步原理&#xff1a; 1、slave执行命令向master建立连接 2、master执行bgsave&#xff08;后台存储&#xff09;&#xff0c;生成rdb快照&#xff08;redis备份方式&#x…

基于STM32F407ZG的FreeRTOS移植

1.从FreeRTOS官网中下载源码 2、简单分析FreeRTOS源码目录结构 2.1、简单分析FreeRTOS源码根目录 &#xff08;1&#xff09;Demo&#xff1a;是官方为一些单片机移植FreeRTOS的例程 &#xff08;2&#xff09;License&#xff1a;许可信息 &#xff08;3&#xff09;Sourc…

如何使用C++调用Pytorch模型进行推理测试:使用libtorch库

如何使用C调用Pytorch模型进行推理测试&#xff1a;使用libtorch库 目录 如何使用C调用Pytorch模型进行推理测试&#xff1a;使用libtorch库一、环境准备1&#xff0c;linux&#xff1a;以ubuntu 22.04系统为例1. 准备CUDA和CUDNN2. 准备C环境3, 下载libtorch文件4, 编写测试li…

开发者评测|操作系统智能助手OS Copilot

操作系统智能助手OS Copilot 文章目录 操作系统智能助手OS CopilotOS Copilot 是什么优势功能 操作步骤创建实验重置密码创建Access Key配置安全组安装 os-copilot环境变量配置功能评测命令行模式多轮交互模式 OS Copilot 产品体验评测反馈OS Copilot 产品功能评测反馈 参考文档…

【鸿蒙学习笔记】Stage模型工程目录

官方文档&#xff1a;应用配置文件概述&#xff08;Stage模型&#xff09; 目录标题 FA模型和Stage模型工程级目录模块级目录app.json5module.json5程序执行流程程序基本结构开发调试与发布流程 FA模型和Stage模型 工程级目录 模块级目录 app.json5 官方文档&#xff1a;app.j…

【笔记】记一次在linux上通过在线安装mysql报错 CentOS 7 的官方镜像已经不再可用的解决方法+mysql配置

报错&#xff08;恨恨恨恨恨恨恨&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff09;&#xff1a; [rootlocalhost ~]# sudo yum install mysql-server 已加载插件&#xff1a;fastestmirror, langpacks Determining fastest mirrors Could not retrie…

MWC上海展 | 创新微MinewSemi携ME54系列新品亮相Nordic展台

6月28日&#xff0c; 2024MWC上海圆满落幕&#xff0c;此次盛会吸引了来自全球124个国家及地区的近40,000名与会者。本届大会以“未来先行&#xff08;Future First&#xff09;”为主题&#xff0c;聚焦“超越5G”“人工智能经济”“数智制造”三大子主题&#xff0c;探索讨论…

AI语音工具——Fish Speech:使用简单,可训练专属语音模型!

今天给大家介绍一款超好用的AI语音工具——Fish Speech&#xff0c;使用简单&#xff0c;还可以训练自己的语音模型&#xff01; 工具介绍 Fish Speech是由 Fish Audio 开发的免费开源文本转语音模型。经过十五万小时的数据训练&#xff0c;Fish Speech能够熟练掌握中文、日语…

【Docker系列】Docker 镜像构建中的跨设备移动问题及解决方案

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

前端实现无缝自动滚动动画

1. 前言: 前端使用HTMLCSS实现一个无缝滚动的列表效果 示例图: 2. 源码 html部分源码: <!--* Author: wangZhiyu <w3209605851163.com>* Date: 2024-07-05 23:33:20* LastEditTime: 2024-07-05 23:49:09* LastEditors: wangZhiyu <w3209605851163.com>* File…

数据分析:基于STAR+FeatureCounts的RNA-seq分析全流程流程

流程主要包含两部分组成&#xff1a; 第一部分&#xff1a;二代测序数据的Raw data的fastq文件转换成Gene Count或者Features Counts表&#xff08;行是Features&#xff0c;列是样本名&#xff09;&#xff1b;第二部分&#xff1a;对counts 表进行统计分析&#xff0c;并对其…

印尼网络安全治理能力观察

在全国国际机场的移民服务完全瘫痪 100 多个小时后&#xff0c;印尼政府承认其新成立的国家数据中心 (PDN) 遭受了网络攻击。 恶意 Lockbit 3.0 勒索软件加密了存储在中心的重要数据&#xff0c;其背后的黑客组织要求支付 800 万美元的赎金。 不幸的是&#xff0c;大多数数据…

纸电混合阶段,如何在线上实现纸电会档案的协同管理?

随着国家政策的出台和引导&#xff0c;电子会计档案的管理越来越规范&#xff0c;电子会计档案建设成为打通财务数字化最后一公里的重要一环。但是&#xff0c;当前很多企业的财务管理仍处于电子档案和纸质档案并行的阶段&#xff0c;如何能将其建立合理清晰关联&#xff0c;统…

Hugging Face 全球政策负责人首次参加WAIC 2024 前沿 AI 安全和治理论坛

Hugging Face 全球政策负责人艾琳-索莱曼 &#xff08; Irene Solaiman &#xff09;将参加7月5日在上海举办的WAIC-前沿人工智能安全和治理论坛&#xff0c;并在现场进行主旨演讲和参加圆桌讨论。具体时间信息如下&#xff1a;主旨演讲&#xff1a;开源治理的国际影响时间 &am…

Spring框架Mvc(2)

1.传递数组 代码示例 结果 2.集合参数存储并进行存储类似集合类 代码示例 postman进行测试 &#xff0c;测试结果 3.用Json来对其进行数据的传递 &#xff08;1&#xff09;Json是一个经常使用的用来表示对象的字符串 &#xff08;2&#xff09;Json字符串在字符串和对象…

Java项目:基于SSM框架实现的共享客栈管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的共享客栈管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

20行代码写一个简单 Blazor 时钟组件

群里有些同学询问怎么实现定时刷新界面, 那咱们写点试试看能不能达到需求. 代码比较简单, 就是Task每秒刷新页面. 然后封装为组件实现只局部刷新. Demo TimerAme.razor <p>Label DateTime.Now.ToLongTimeString()</p>TimerAme.razor.cs using Microsoft.AspNet…

计算机应用数学--第三次作业

第三次作业计算题编程题1 基于降维的机器学习2 深度学习训练方法总结 第三次作业 计算题 (15 分&#xff09;对于给定矩阵 A A A&#xff08;规模为 42&#xff09;&#xff0c;求 A A A 的 SVD&#xff08;奇异值分解&#xff09;&#xff0c;即求 U U U&#xff0c; Σ …