VS Code 远程容器开发

·  阅读 338

vscode连接远程容器

这里使用ssh连接而没有采用docker直连,感觉ssh连接更方便些

在容器内启动ssh服务

  • 1-修改sshd_config 文件

    启动容器后,在容器内修改/etc/ssh/sshd_config 文件,修改以下字段

    Port 22   #改成其他数字,避免容器内的ssh端口,与物理机ssh端口冲突

    PermitRootLogin prohibit-password     #如需使用root用户登录,prohibit-password 改为 yes

  • 2-启动ssh服务,修改密码

    service ssh start  # 启动ssh服务

    在连接容器时,需要容器的用户名和密码,容器内的用户的默认密码,我们不清楚,可以使用passwd user重置密码,user 重置密码,user 换成你用户名

vscode Remote -SSH

  • 1-在插件市场,搜索remote-ssh ,找到之后安装,安装之后,可在左边工具栏看见一个电脑的图标

image.png

  • 2-配置ssh连接

    a.使用快捷键ctrl + shift +p 打开 vscode 菜单 ,查找 ssh ,选择Remote-SSH: Open SSH Configuration 

    image.png

    b.选择config文件进行配置(默认第一个即可)

    image.png

    c.ssh config 参考如下进行设置

# 直连
Host 10.100.209.15
  HostName 10.100.209.15
  Port 22
  User jiyujiao

# 通过跳板连接
Host 10.100.98.48
    HostName 10.100.98.48
    User chenzhengda
    Port 22
    ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p 10.100.209.15

# 连接docker
Host mm_chenzhengda
    HostName 10.100.98.48
    User root
    Port 713
    ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p 10.100.98.48
复制代码
  • 4-连接至容器

安装之后,点击remote-ssh图标,可以看见我们之前,在ssh_config配置好的docker

image.png

代码调试

代码调试需要在.vscode目录下创建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": "resnet50",
            "type": "cppdbg",
            "request": "launch",
            // "preLaunchTask": "build",
            "program": "${workspaceFolder}/bazel-bin/magicmind/tools/mm-e2e",
            "args": [
                "--parser-type=caffe",
                "--transform-type=cv",
                "--dataset-type=imagenet",
                "--dump-io=true",
                "--test-number=2",
                "--input-shapes=1,3,224,224",
                "--input-data-types=FLOAT32",
                "--precision-mode=float16",
                "--input-names=input",
                "--output-names=prob",
                "--input-layouts=NCHW",
                "--quantization_algorithm=symmetric_linear",
                "--dataset-path=/data/datasets/imagenet/",
                "--dataset-name=${workspaceFolder}/magicmind/tools/mm_e2e/test/ut_data/test_file_list_for_imagenet",
                "--calibrate-dataset-name=${workspaceFolder}/magicmind/tools/mm_e2e/test/ut_data/calibrate_file_list_for_imagenet",
                "--input1=/data/models/IK_benchmark/V2.5.0/Accuracy_Benchmark/Classify/model/ResNet50/ResNet50_train_val_merge_bn.caffemodel",
                "--input2=/data/models/IK_benchmark/V2.5.0/Accuracy_Benchmark/Classify/model/ResNet50/ResNet50_train_val_merge_bn.prototxt",
                "--mean-value=103.94,116.78,123.68",
                "--std-value=1.0,1.0,1.0",
                "--preprocess-option=kScaleUp",
                "--resize-length=256"
            ],
            // "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [
                {"name": "NEUWARE_HOME","value": "/usr/local/neuware"},
                {"name": "MM_CPP_MIN_VLOG_LEVEL","value": "1"},
                {"name": "LD_LIBRARY_PATH","value": "$LD_LIBRARY_PATH:/usr/local/neuware/lib64"}
            ],
        },
    ]
}
复制代码

点击▶启动调试,

VARIABLES,查看栈内的变量

WATCH,可以添加自己要观察的变量

CALL STACK 显示线程的调用栈

BREAKPOINTS 查看断点

image.png

调试期间,Debug Console可以用来执行部分代码,查看变量,此处我执行了node_item->GetNode()->name(),可以看到里面的值是main/mm.const-108/cnnl.const

image.png

分类:
开发工具
分类:
开发工具
收藏成功!
已添加到「」, 点击更改