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

天津科技网站甘肃广川工程建设有限公司网站

天津科技网站,甘肃广川工程建设有限公司网站,优设,wordpress装饰(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…
  • (꒪ꇴ꒪ ),Hello我是祐言QAQ
  • 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍
  • 快上🚘,一起学习,让我们成为一个强大的攻城狮!
  • 送给自己和读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,请在评论区指正,感谢🙏

引言

        在软件开发过程中,调试是不可或缺的一部分。C/C++ 开发者常常使用 GDB 进行调试,而在 Visual Studio Code中集成 GDB 可以提供一种高效、直观的调试体验。本文将为你详细介绍如何在 VS Code 中配置和使用 GDB 进行 C/C++ 调试,并解答一些常见问题。

一. 安装 VSCode 插件

        首先,确保你已经在 VSCode 中安装了 C/C++ 和 GDB Debug插件,如果没有安装,可以在 Extensions 视图(左侧四个方块)中搜索 "C/C++" 和“GDB Debug” 并分别进行安装(Install),该插件提供了强大的代码编辑和调试功能。

二. 配置 GDB

        在配置 GDB 之前,确保你已经安装了 GDB 调试器。然后,在 VSCode 中创建一个 launch.json 文件以配置调试环境。或者直接点击运行调试就会弹出配置该文件的提示。

        打开后默认长这样,当然是不行的,所以点击右下角的Add Configuration...

        然后选择你需要的类型:

   或者复制如下代码直接粘贴进去亦可:

{"version": "0.2.0","configurations": [{"name": "C++ Debug","type": "cppdbg","request": "launch","program": "${workspaceFolder}/your_executable", //${workspaceFolder}是路径除执行文件外其他"args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}", //这里也一样"environment": [],        //环境有则需要配置,无则无需管"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build"}]
}

        但要确保替换 "your_executable" 为你的可执行文件的路径。这个配置会告诉 VSCode 使用 GDB 进行调试。

三. 基本调试命令

在 VSCode 的调试视图中

        你可以使用一系列基本调试命令,如:

  • Breakpoints(break): 在源代码中设置断点,以便在程序执行到这些地方时停下来;
  • Run(F5): 启动程序;
  • Continue(continue): 恢复程序执行,直到下一个断点;
  • Step Into(F11): 逐行进入函数内部;
  • Step Over(F10): 逐行执行当前函数,不进入函数内部;
  • Step Out(Shift+F11) : 从当前函数中跳出,继续执行到函数返回的地方;
  • Stop(Shift+F5): 停1止调试;

终端使用命令行方式调试

        启动GDB的方式一般为: gdb <你的可执行文件名>,还有如下的几种:

1.调试core文件:
//用于调试一个运行程序和core文件,core文件是程序非法执行后core dump产生的文件
gdb <program> core  2.使用GDB “attach”到一个正在运行的服务程序上去,并调试它:
gdb <program> <PID>
或者:
gdb attach <PID>

        主要的步骤详细说明一下,其他的自己摸索一下就会了,具体步骤如下:

1. 运行(毫无设置的run)

2. 设置断点(在运行之前设置)

        设置断点是调试的关键步骤之一。在源代码中点击行号旁边,或者通过命令行使用 break 命令设置断点(第十行),还可以在指定模块和函数前设置断点,禁用断点和删除断点等。

3. 逐行运行

        这里主要说一下step和next的区别:

  • step 命令: 逐行执行程序,进入函数内部;

  • next 命令: 逐过程执行程序,不进入函数内部。

4. backtrace 使用

        在GDB调试中,有时候会出现报错Segmentation fault,该报错是因为出现了内存错误,我们就可使用 backtrace 命令来追溯问题出在哪一步,当然这个问题一般出现时就会提示错误在哪一行,但我们可以通过该命令来回溯其之前调用的地方逐个检查问题,方便更快找出。

5. info 使用

        这些命令提供了丰富的调试信息,帮助你理解程序的执行状态、断点信息、寄存器值等。

info breakpoints / info break / info b    //查看断点信息,包括断点类型(BreakPoint、WatchPoint、CatchPoint)、断点编号(Num)、断点状态(Eanble/Disable)、断点被击中的次数(hit times) 等信息info watchpoints          //查看观察点信息,显示的信息与 info b 类似,个人认为完全可以用info b替代,好处可能就是当断点数量比较多时,只关注观察点而屏蔽断点信息info program        //      查看程序状态 ,包括程序是否已停住,如果停住了是停在哪个断点上info stack       	//可以查看到程序的调用栈信息info register    	   //查看程序的各个寄存器的值info threads        	//查看 线程 信息info file			//查看当前GDB正在调试程序所在的文件info line			//查看(当前位置的)源代码在内存中的地址info line test.c:func		//查看(指定文件名:函数名)的源代码在(运行时)的内存地址

6. 常见错误解决        

       一般来说,配置好之后点击“运行和调试”,右上角就会出现该绿色三角,点击之后报错让你修改 launch.json 文件 那么说明你的该文件中存在语法上的错误或缺失某行,照着检查一下即可,一定要注意路径的/是否加全。

        在 VSCode 中,GDB 的集成提供了直观的调试工具。你可以查看变量、观察寄存器状态等。通过调试视图,你可以更轻松地导航和掌握程序执行的每个步骤。

        除了基本的调试命令外,GDB 还提供了一些高级技巧,如查看内存、观察程序状态等。深入了解这些功能可以帮助你更全面地调试代码。一般来说两种GDB使用方式配合调试是最好的,它们在不同的地方有各自的亮点和作用。

四、结语        

        通过本文的指南,希望将能够在 VSCode 中配置和使用 GDB 进行 C/C++ 程序的高效调试。调试是编程中的一项重要技能,善用调试工具可以提高代码质量,加速开发周期。

        更多C/C++语言Linux系统数据结构ARM板实战相关文章,关注专栏:

   手撕C语言

            玩转linux

                    脚踢数据结构

                            系统、网络编程

                                     探索C++

                                             6818(ARM)开发板实战

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉🎉🎉感谢关注🎉🎉🎉
http://www.yayakq.cn/news/659059/

相关文章:

  • 什么类型的网站容易做佛山模板网站建站
  • 广州企业建站系统模板怎么自己做网站游戏
  • 网站建设公司名称设计一个网站要多少钱
  • h5网站制作介绍宣传片拍摄脚本
  • 邦利博客网站怎么做的南海区住房城乡建设和水务局网站
  • 专业的团队网站建设什么是软文营销
  • 佛山网站建设推广厂商排名做网站app需要多少钱
  • 已有网站做移动网站电子商务网站建设 期末考试试卷以及答案
  • 织梦 图片网站大连百度推广优化
  • 公建设计网站python编程软件推荐
  • 教育网站制作设计营销策略论文
  • 可信网站认证是否必须做nas里安装wordpress
  • asp简单网站开发域名 空间 网站
  • 全能企业网站管理系统wordpress图片比例拉伸
  • 乌克兰网站服务器多伦网站建设
  • 阿里云做网站麻烦吗厦门网站建设的公司
  • 该网站无备案电商模板哪个网站好
  • 可以做女的游戏视频网站国内公司网站需要备案吗
  • 网站建设的公司怎么收费搭建一个网站的具体步骤
  • 免费视频素材网站都有哪些失眠先生 wordpress
  • 一级a做爰片免费网站在线内蒙古有做购物网站的吗
  • 有哪些可以做兼职的翻译网站吗建网站免费吗
  • 沛县微网站开发趣头条自媒体平台注册
  • 英国零售电商网站开发wordpress 显示标题
  • 网站备案幕布豆角网是哪个网站开发的
  • html手机网站如何制作wordpress vue
  • 郑州一网网站建设成都高新区规划建设局网站
  • 专门做三国战纪的网站叫什么微商运营
  • 贵阳市住房和城乡建设局政务网站衡水专业网站建设公司
  • 中国建材网官方网站成都 网页设计 兼职