VS Code 调试 OneFlow
本文介绍如何配置 VS Code,搭建 OneFlow 的 GUI 开发环境。
如果对于 VS Code 及其插件系统还不熟悉,可以参阅官方文档。
本文包括:
• 如何编译 Debug 版本的 OneFlow
• 远程调试所必需的 VS Code 插件的安装配置
编译 Debug 版本的 OneFlow
如果使用 Release 版本的 OneFlow,可能会因为编译器优化,导致在调试过程中程序实际运行位置与源码行不对应。
需要编译 Debug 版本的 OneFlow,并且需要生成 clangd 所需要的 json 文件。
在运行 cmake 的时候需要加上 Debug 及 CMAKE_EXPORT_COMPILE_COMMANDS 的 flag。
cmake …
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_EXPORT_COMPILE_COMMANDS=1
• -DCMAKE_BUILD_TYPE=Debug 选项指定编译 Debug 版本
• -DCMAKE_EXPORT_COMPILE_COMMANDS 选项会在 build 目录下生成后文 clangd 配置时所需要的 compile_commands.json 文件
Remote - SSH
本节内容仅为那些需要远程开发的人员准备,在本地主机上进行开发的人员 可以略过此节。
通过 VS Code 的 Remote SSH 插件,可以通过 SSH 的方式连接远程服务器。

被调试对象 OneFlow 可以运行在远程主机上,然后通过 Remote SSH 将远程的情况和本地的 VS Code 用户操作连接起来, 像调试本地程序一样调试远程主机上的程序。
安装完成 Remote - SSH 后,按 F1,在弹出的搜索栏中选择 Remote-SSH: Connect to Host…,即可设置 SSH 的连接信息,连接远程主机。
Remote - SSH 连接远程主机后,在插件一栏,会自动分类“远程”与“本地”,如果检测到需要在远程电脑上安装的插件,会显示为灰色,并带有 Install in SSH:远程主机名 的按钮,点击即可将对应插件安装在远程主机。

如上图,已经在远程主机安装 Python、clangd、Native Debug 插件,用于支持远程调试 OneFlow。
但是远程主机并没(本地主机已经安装的)Go 和 HTML CSS Support 插件。
clangd
经过简单的配置,clangd可以为提供代码补全、符号跳转等便利。
在配置 clangd 之前,需要确认:
• 已经通过编译,生成了compile_commands.json文件
• 已经通过 Remote - SSH 在远程主机上安装了 clangd 插件
• 不要 安装 VS Code 默认推荐的 ms-vscode.cpptools C/C++ 插件,因为 clangd 与之有冲突
安装 clangd 程序
VS Code 上的插件,通过与 clangd 服务程序交互,获取解析信息并显示的。因此除了安装 VS Code 上的 clangd 插件外,还需要在 OneFlow 源码所在的主机上 (本文中为远程 Linux 主机)安装 clangd 服务程序。
将采用下载 zip 文件并解压的方式安装 clangd,更多安装方法,可以参考 clangd 官方文档。
首先,下载与系统平台对应的clangd压缩包,并解压。 解压后可先运行 clangd 测试下,确保能正常运行后再进行后续配置。
/path/to/clangd/bin/clangd --help
配置 VS Code 中的 clangd 插件
将 build 目录下的 compile_commands.json 文件软链接到 OneFlow 的源码根目录下,在 OneFlow 的源码根目录下:
ln -s ./build/compile_commands.json compile_commands.json
然后 Ctrl+Shift+P (macOS 下 command+shift+p),找到 Open Remote Settings 选项,打开 settings.json 配置文件,在其中加入以下配置:
“clangd.path”: “/path/to/bin/clangd”,
“clangd.arguments”: [
“-j”,
“12”,
“-clang-tidy”
]
clangd.arguments的意义及更多参数选项,可查阅clangd --help。
使用 clangd
在 VS Code 的 View->Output 面板,下拉菜单中选择 “Clang Language Server”,可以看到 clangd 的解析输出,解析完成后。选择 C/C++ 源码中的符号,可以实现跳转。
按Ctrl+P (macOS 下 command+P) 后通过@符号名或#符号名可以分别实现当前文件内查找符号,或工程范围内查找符号。
native debug
Ctrl + Shift + D (macOS 下 command+shift+D) 或者点击 activity bar 的 Run 按钮,进入到 Run 视图。

选择 Create a launch.json file,选择 gdb 模板。

然后设置相关参数:
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “lenet”, //自定义任务名
“type”: “gdb”,
“request”: “launch”,
“target”: “/home/yaochi/.conda/envs/ycof/bin/python3”, //python路径
“arguments”: “lenet_train.py”, //脚本
“cwd”: “/home/yaochi/of_example”, //脚本所在路径
“valuesFormatting”: “parseText”
}
]
}
设置断点后,F5 启动调试:
其它
• 如果 VS Code 下载插件速度过慢,可以按照官方文档的步骤切换 hostname 或者设置代理。
• 关于 clangd 安装配置的官方介绍
• 关于 VS Code 的调试设置的官方介绍
• clangd 的最新版本可能对 glibc 版本要求过高,导致报缺少库的错误。
./bin/clangd: /lib64/libc.so.6: version `GLIBC_2.18’ not found (required by ./bin/clangd)
此时可以下载其它更低 clangd 的版本(本文推荐版本为 9.0.0),早期版本的 clangd 需要到 LLVM官网 下载整个LLVM工具链,其中包含有 clangd。

VS Code 调试 OneFlow相关推荐

  1. http状态404 vscode_VS Code 调试完全攻略(5):基于浏览器的 React 应用

    每日前端夜话第344篇 翻译:疯狂的技术宅 作者:Charles Szilagyi 来源:charlesagile 正文共:1750 字 预计阅读时间:7 分钟 这次我们来研究怎样把调试器连接到用 C ...

  2. Ubuntu上配置VS Code调试C++

    直接使用GDB在Ubuntu上调试C++ code,有时不是很方便,这里介绍下在Ubuntu上通过Visual Studio Code调试C++ code操作步骤,通过CMake编译. 安装所需依赖: ...

  3. 控制dcom程序使用端口_使用VS Code调试.net控制台应用程序的方法

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:https://www.byteflying.com/archives/6928. 1.概述 本文向大家介绍使用Visual Stud ...

  4. QT调用dll且进入DLL src code调试

    qt应用程序AA.exe调用qt写的BB.DLL时,进入BB.DLL src code调试 1.debug生成AA.exe 2.将debug生成的AA.exe整包debug folder放到BB.dl ...

  5. 使用Visual Studio Code调试.net控制台应用程序的方法

    该文章的最新版本已迁移至个人博客[比特飞],单击链接:使用Visual Studio Code调试.net控制台应用程序的方法 | .Net中文网. 1.概述 本文向大家介绍使用Visual Stud ...

  6. Python virtualenv工具设置虚拟环境和VS code调试Python

    Python virtualenv工具设置虚拟环境和VS code调试Python 1. Window环境下采用VS code调试Python和虚拟环境 1.1 安装Python 1.2 安装虚拟环境 ...

  7. android通过代码设置铃声_使用VS Code调试Android C_C++代码(无需Android源码)

    需求分析 在开发 Android Native 程序时(仅 C/C++代码,无 APK 应用),之前在调试的过程中一直只是使用添加 LOG 的方式来定位程序的问题,而在 Linux 上开发平台程序时, ...

  8. 使用visual studio code调试单个js文件

    使用visual studio code调试单个js文件 1.添加配置 2.选择Node.js Launch Program生成基本配置 3.修改配置信息 4. 运行js文件进行debug调试 5. ...

  9. VS Code调试C/C++程序

    VS Code调试C/C++程序 环境准备: Visual Studio Code MinGW VS Code C/C++扩展 操作系统:Windows 10 64位 Visual Studio Co ...

最新文章

  1. Java 内部类分析
  2. 【直播预告】云栖直播:阿里热修复产品HotFix2.0升级详解
  3. 一文读懂分布式架构知识体系(内含超全核心知识大图)
  4. 恩施软件开发人员每月多少钱_恩施建个大棚多少钱搭建、养猪大棚价格
  5. 《HTML5 Canvas开发详解》——导读
  6. hadoop调优之一:概述
  7. MVC捕获数据保存时的具体字段验证错误代码
  8. 计算机专业技能高考试题素材,计算机技能高考模拟试题
  9. python hbase_python 操作 hbase
  10. JSONObject获取的值有时候不是String类型,而有时候又是String类型,怎么办呐
  11. 直线端点画垂线lisp_AutoCAD中利用AutoLISP开发小程序,实现快速画直线对称中心线...
  12. IgH详解五、从站扫描流程
  13. 一分钟内搞定!熊猫杀毒软件研发提升扫描速度的技术
  14. android手机相册多张上传,一键批量上传手机照片到QQ相册功能 节省手机流量
  15. CSS3动画实现牛顿摆
  16. android bks证书生成方式
  17. STM32CubeIDE 介绍及安装
  18. 由经纬度计算地球上任意两点的距离
  19. 《大规模元搜索引擎技》——第1章 绪言1.1 Web上查找信息
  20. 模拟HTTP请求, POST方法(附源码)

热门文章

  1. 伍六七带你学算法 入门篇-卡牌分组
  2. 解释型语言与编译型的必须知识点
  3. 【C/S语言】.net平台
  4. EdgeBERT:极限压缩bert
  5. Python __dict__属性详解
  6. LeetCode简单题之密钥格式化
  7. MindSpore后端运行类
  8. 用NVIDIA NsightcComputeRoofline分析加速高性能HPC的应用
  9. 解读模拟摇杆原理及实验
  10. 人脸识别数据集精粹(下)