VSCode实现GDB图形界面远程调试

如何利用VSCode实现GDB图形界面远程调试

前言

在习惯了集成开发环境的图形界面调试时,首次使用GDB远程调试必定很不习惯,下面讲述如何利用VSCode实现GDB图形界面远程调试

代码在Linux服务器上,而平常都在Windows上使用,那么VSCode需要安装”Remote – SSH”插件,即可实现在 Windows 上进行开发调试。

使用方式

可参考如何进行GDB远程调试,在此基础上操作。

  1. 在 VSCode 打开的工程 .vscode 目录下中新建 launch.json 文件。
{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动", //配置名称,显示在配置下拉菜单中
            "type": "cppdbg", //配置类型
            "request": "launch", //请求配置类型,可以是启动或者是附加
            "program": "/home/workspace/const-zpc/gdb/bin/x264_demo", //程序可执行文件的完整路径,${workspaceFolder}表示远程连接的初始路径
            "args": ["../test.yuv", "../test.h264"], //传递给程序的命令行参数
            "stopAtEntry": true,//可选参数,如果为true,调试程序应该在入口(main)处停止
            "cwd": "${workspaceFolder}", //目标的工作目录
            "environment": [], //表示要预设的环境变量
            "externalConsole": false,//如果为true,则为调试对象启动控制台
            "MIMode": "gdb",//要连接到的控制台启动程序
            "miDebuggerPath": "/home/workspace/const-zpc/gdb/bin/arm-himix200-linux-gdb",   // 需要自行添加,gdb的路径
            "miDebuggerServerAddress": "192.168.1.102:8005",                                              //自行添加 gdbserver 的ip端口
            "setupCommands": [ //为了安装基础调试程序而执行的一个或多个GDB/LLDB命令
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
  1. 在目标板上运行需要调试的程序,如
./gdbserver --remote-debug 192.168.1.100:8005 x264_demo ../test.yuv ../test.h264
Process ./x264_demo created; pid = 1775
Listening on port 8005
  1. 在 VScode 上运行 GDB 调试。
    VSCode实现GDB图形界面远程调试
  2. 进入调试界面,可以开发调试,并设置断点
    VSCode实现GDB图形界面远程调试

图形效果

VSCode操作效果如下

VSCode实现GDB图形界面远程调试

Original: https://www.cnblogs.com/const-zpc/p/16451902.html
Author: 大橙子疯
Title: VSCode实现GDB图形界面远程调试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714383/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • eclipse反编译插件

    1、在eclipse的help—》Install New Software…中添加新软件开发,添加它的源: undefined name : jd – ec…

    技术杂谈 2023年7月24日
    075
  • 复杂度分析

    复杂度 复杂度分析是数据结构与算法的核心精髓,指在不依赖硬件、宿主环境、数据集的情况下,粗略推导,考究出算法的效率和资源消耗情况, 包括时间复杂度和空间复杂度 时间复杂度 首先从C…

    技术杂谈 2023年7月23日
    068
  • PyQt5中线程和界面操作总结

    界面及功能完成后,点击某个按钮操作耗时的操作时(比如打包大文件),点击按钮后执行打包,于是在真正打包完成前,界面界面都是呈现卡住的,无法动弹,稍微操作一下时可能不会遇到停止等待。 …

    技术杂谈 2023年7月11日
    075
  • laravel自定义中间件实例

    一、总结 二、laravel自定义中间件实例 legend3/app/Http/Middleware/Home/UploadLessonMiddleware.php legend3…

    技术杂谈 2023年5月30日
    077
  • 千古前端图文教程-HTML005-HTML标签:字体标签和超链接

    HTML标签:字体标签和超链接 HTML标签:字体标签和超链接 本文主要内容 #字体标签 #特殊字符(转义字符) #下划线、中划线、斜体 粗体标签 或 (已废弃) #字体标签 &l…

    技术杂谈 2023年7月11日
    0121
  • Django Model 如何返回空的 QuerySet

    >>> from django.contrib.auth.models import User >>> User.objects.none() …

    技术杂谈 2023年6月21日
    0110
  • Git 11 不同项目设置不同提交人

    前面介绍了可以给 Git 设置全局提交人,这样当前电脑所有项目提交人都会变成设置的值。 但实际开发中有时候需要给 不同项目设置不同提交人。 比如工作的项目是一个提交人,自己维护的开…

    技术杂谈 2023年7月24日
    047
  • XCTF pwn新手区解题记录

    一、前言 闲来无事,刷刷ctf题 二、题目: level0 1、下载好题目后,拖入到kali中去,用 file 和 checksec 查看一下,可以发现该程序是 64&#x…

    技术杂谈 2023年7月11日
    068
  • 阿里DDD项目最佳实践-COLA 架构总览

    DDD分层架构、六边形架构、洋葱圈架构、以及 COLA 架构的核心职责就是要做核心业务逻辑和技术细节的分离和解耦。 在架构思想上,COLA 主张像六边形架构那样,使用端口-适配器去…

    技术杂谈 2023年6月1日
    0105
  • [转帖]DDR内存技术更迭20年

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月30日
    092
  • 力扣刷题之路-数组的旋转、遍历

    参考刷题顺序:力扣刷题顺序 涉及题目 189 轮转数组 396 旋转函数 54. 螺旋矩阵 59. 螺旋矩阵 II 498. 对角线遍历 189 轮转数组 自己的想法: 类似于题目…

    技术杂谈 2023年7月11日
    099
  • 源码级别的广播与监听实现

    原创:微信公众号 【阿Q说代码】,欢迎分享,转载请保留出处。 近期疫情形势严峻,情形不容乐观,周末也不敢出去浪了,躲在家里”葛优躺”。闲来无事,又翻了遍 S…

    技术杂谈 2023年7月11日
    080
  • 解决Mybatis-plus高版本不向后兼容的问题

    mybatis-plus插件后面的版本没有兼容低版本。即:不存在低版本中EntityWrapper这个类了。而该类采用数据库表真实字段名作查询条件,这样硬编码形式确实不友好,比如如…

    技术杂谈 2023年7月11日
    055
  • 经典的三色旗问题

    首先来看,什么是三色旗问题。 有一根绳子,上面有红、白、蓝三种颜色的旗子。绳子上旗子的颜色并没有顺序,现在要对旗子进行分类,按照蓝色、白色、红色的顺序排列。只能在绳子上进行移动,并…

    技术杂谈 2023年7月23日
    077
  • SprignCloudAlibaba中集成Sentinel之系统自适应限流实现整体流量控制

    场景 SpringCloudAlibaba中使用Sentinel实现流量控制以及流控规则详解: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/…

    技术杂谈 2023年5月31日
    092
  • 监听html 页面元素的变化

    if(document.getElementsByClassName(‘userSelect’) && document.getElementsByClassNam…

    技术杂谈 2023年6月1日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球