【工具使用】Visual Studio Code远程调试

VS Code的其中一个关键的特征就是它极好的调试支持。VS Code的内置调试器帮助加速你的编辑、编译和调试循环。
【工具使用】Visual Studio Code远程调试_第1张图片

调试扩展

  • VS Code有Node.js运行的内置的调试支持,并且能够调试Java脚本或者任何其他可以转译为JavaScript的语言。
  • 为了调试其他语言(包括PHP,Ruby,Python,C++),需要在VS Code的扩展市场查找相应的扩展。
    【工具使用】Visual Studio Code远程调试_第2张图片

在VS Code中进行Python的调试

  • Python扩展支持集中类型的Python应用的调试。
  • 简短的过一下基础的调试,首先在第2行打一个断点。
    在这里插入图片描述
  • 之后,为了初始化调试器,按键盘的F5键。注意: VS Code使用JSON文件来做大量的配置,launch.json是包含调试配置的文件的标准的名字。
  • 解释一下这些不同的配置,一个配置在一个调试对话中驱使着VS Code的行为。launch.json文件被存储在你的工作空间的.vscode文件夹下。
  • 为了初始化调试的配置,首先点击左边菜单的下面这个按钮:
    【工具使用】Visual Studio Code远程调试_第3张图片
  • 打开launch.json文件,它包含一个预定义好的配置。
  • 你也能够添加其他的设置,比如说args,它没有被包含在标准的配置中。
  • 技巧:在一个项目中,创建一个配置来运行一个特定的startup文件非常有用。比如说,如果你总是想要运行startup.py文件,同时带有参数–port 1593,每次当你开始调试器的时候,可以创建一个像下面的条目:
{
     "name": "Python: startup.py",
     "type": "python",
     "request": "launch",
     "program": "${workspaceFolder}/startup.py",
     "args" : ["--port", "1593"]
 },
  • name提供在VS Code的折叠列表中的名字;type标识使用的调试器的类型,对于Python代码设置为python就好;request指明在什么模式下来开启调试:
    • launch:开启在program上特定的文件上的调试器;
    • attach:将调试器附加于一个已经运行的进程。

使用SSH的远程脚本调试

  • 远程调试允许你在本地一步一步过程序在VS Code内,当它实际上运行在一个远程的电脑上。
  • 在本地电脑上,创建一个SSH tunnel通过在命令行运行下面的命令:
ssh -2 -L 5678:localhost:5678 -i identityfile [email protected]
  • 以连接matpool中的机器为例:
ssh -2 -L 22:hz-t2.matpool.com:26000 root@hz-t2.matpool.com
  • 在你的VS Code工作空间中,创建一个服务于远程调试的配置在你的launch.json文件,将端口号和你在ssh命令中使用的端口号设为一致。
{
  "name": "Python: Attach",
  "type": "python",
  "request": "attach",
  "port": 5678,
  "host": "localhost",
  "pathMappings": [
    {
      "localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
      "remoteRoot": "." // To current working directory ~/project1
    }
  ]
}
  • 有两种方式来连接到远程进程,在源代码中,增加下面的代码行,将address替换为远程电脑的ip地址和端口号。
import debugpy

# Allow other computers to attach to debugpy at this IP address and port.
debugpy.listen(('1.2.3.4', 5678))

# Pause the program until a remote debugger is attached
debugpy.wait_for_client()
  • IP地址被使用在listen方法中的,应该是远程电脑的私有IP地址。你之后可以正常得运行程序,使得它知道调试器连接上才开始。
  • 通过debugpy来运行远程进程,比如说:
python3 -m debugpy --listen 1.2.3.4:5678 --wait-for-client -m myproject
  • 在本地电脑上,切换到Run and Debug视图,选择Python:Attach的配置。在代码中设置一个断点。

剩下的详情参加文档:

https://code.visualstudio.com/docs/python/debugging#_remote-script-debugging-with-ssh

你可能感兴趣的:(vscode,ide,编辑器)