VSCode Debug调试

本文介绍了如何使用VSCode进行远程开发和调试,包括安装RemoteDevelopment插件,配置SSH设置,以及调试步骤。对于Python项目,通过修改launch.json文件禁用justMyCode实现Stepinto功能。调试Tensorboard插件时,需要使用特定命令,并通过debugpy进行附加调试。此外,还详细阐述了如何调试PyTorch的Python和C++代码,包括使用mpdb和gdb,以及相应的launch.json配置。最后提到了调试PyTorch时可能遇到的延迟问题和解决方法。
部署运行你感兴趣的模型镜像

让远程调试生效:

VScode Remote 远程开发与调试 - 简书 (jianshu.com)

安装Remote Development插件;

ctrl+shift+p打开设置Remote-SSH-Settings,设置Remote.SSH:Show Login Terminal为true;

安装完插件后左下角会出现一个绿色的图标,点击选择,然后在最上方命令窗口Connect to Host

输入密码

 

让Step into(F11)生效:

在config文件里,加一条:

"justMyCode": false

 

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "stopOnEntry": true,
            "justMyCode": false
        }
    ]
}

调试tensorboard plugin:

plugin要用python setup.py develop来安装

代码里,子线程、子进程的代码,必须用pdb.set_trace()来设置断点;(提前import pdb)

which tensorboard找到其路径

python -m pdb <tensorboard路径> --logdir=./samples --port=XXXX --bind_all

pdb里面,用“b <文件绝对路径>:<行号>”来设断点


用VSCode来调试tensorboard plugin:

plugin要用python setup.py develop来安装

pip install debugpy

代码里不要使用pdb.set_trace();直接在代码上设断点;

which tensorboard找到其路径

python -m debugpy --listen 5678 /home/gaoteng/anaconda3/envs/pytorch_debug_0412/bin/tensorboard --logdir=./samples --bind_all --port 6013

launch.json:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Attach using Process Id",
            "type": "python",
            "request": "attach",
            "processId": "${command:pickProcess}",
            "connect": {
                "host": "localhost",
                "port": 5678
            }
        }
    ]
}

有3个进程,attach进程id在中间的那个;


如何Debug PyTorch的Python&C++:

如何对Pytorch进行“深入”的DEBUG - Oldpan的个人博客

可以使用python -m pdb my_pytorch_model.py来代替文中提到的pycharm,来启动python程序;

文中提到的launch.json,是在打开pytorch源码目录之后,Debug时,手动填写的;

注意:Attach到该进程时,要等待一两分钟,才能attach完成并继续执行,看上去像死机了一样;

填写的launch.json:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Attach",
            "type": "cppdbg",
            "request": "attach",
            "program": "/home/gaoteng/anaconda3/envs/pytorch_debug_0412/bin/python",
            "processId": "${command:pickProcess}",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]            
        }
    ]
}

需要安装C++ Extension Pack,才能支持pdb的debug:

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### VSCode 中进行 Debug 调试的配置方法 #### 一、基本概念 Visual Studio Code (简称 VSCode) 是一款轻量级但功能强大的源代码编辑器,支持多种编程语言及其调试环境。通过安装扩展插件并合理配置 `launch.json` 文件,可以实现对 C/C++ 程序以及其他复杂项目的调试。 --- #### 二、C/C++ 程序的 GDB 调试配置 对于本地开发的 C/C++ 程序,可以通过以下方式完成调试配置: 1. **安装必要的工具** 安装 GCC 编译器以及 GNU Debugger (GDB),这是调试的基础工具[^1]。 2. **创建 launch.json 文件** 在 `.vscode/launch.json` 文件中定义调试参数。以下是常见的字段解释: - `"program"`:指定要调试的目标程序文件路径(建议使用绝对路径)。 - `"cwd"`:设置工作目录,即目标程序运行时所在的路径。 - `"miDebuggerPath"`:指定 GDB 的具体路径。 下面是一个典型的 `launch.json` 配置示例: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/main.out", // 替换为目标程序的实际路径 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build", // 可选:关联构建任务 "miDebuggerPath": "/usr/bin/gdb" } ] } ``` 3. **启动调试会话** 使用快捷键 F5 或点击左侧边栏中的绿色三角形按钮即可开始调试。 --- #### 三、远程嵌入式设备上的 GDB Server 调试 如果需要调试运行在远程嵌入式设备上的应用程序,则需额外配置 GDB Server 和客户端连接。 1. **准备阶段** - 将目标程序和对应的 GDB Server 工具上传至目标设备,并赋予执行权限[^3]。 ```bash chmod +x /tmp/mips-linux-gdbserver chmod +x /tmp/test ``` - 启动 GDB Server 并监听特定端口(如 10000),绑定待调试的应用程序: ```bash /tmp/mips-linux-gdbserver :10000 /tmp/test ``` 2. **修改 launch.json 文件** 添加如下字段以支持远程调试: - `"miDebuggerServerAddress"`:指定目标设备 IP 地址及端口号。 示例配置如下: ```json { "version": "0.2.0", "configurations": [ { "name": "(Remote gdb) Launch", "type": "cppdbg", "request": "launch", "program": "/path/to/local/executable", // 本地可执行文件路径 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "miDebuggerServerAddress": "192.168.1.100:10000" // 远程设备IP和端口 } ] } ``` --- #### 四、ROS 项目下的调试配置 针对 ROS(Robot Operating System)框架内的节点调试,推荐采用专门设计的任务模板来简化流程[^2]。 1. 创建一个新的调试配置项,在 `launch.json` 中加入类似下面的内容: ```json { "version": "0.2.0", "configurations": [ { "name": "ROS: Launch", "type": "ros", "request": "launch", "target": "/home/user/ros_ws/src/my_package/launch/debug.launch" // 修改为实际 launch 文件位置 } ] } ``` 2. 如果涉及自定义逻辑或者更复杂的场景调整,还可以引入附加选项比如日志级别控制等进一步优化体验。 --- #### 总结 以上分别介绍了基于本机环境的标准 GDB 调试模式、面向远端硬件平台的操作指南以及适用于机器人领域特殊需求的技术方案。每种情形下都需要精确设定相关属性从而达成预期效果。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值