跳转至主要内容

VSCode 远程调试

支持的语言#

语言依赖插件开发镜像依赖
JavaDebugger for JavaN/A
GoGodlv
PythonPythondebugpy
PHPPHP Debugxdebug
Node.jsN/AN/A
RubyRubyruby-debug-ide

插件配置#

Java开发工具包的路径可以通过VS Code设置(工作区/用户设置)中的java.home设置来指定。 如果未指定,它将在以下顺序中搜索,直到一个 JDK 满足当前的最低要求,插件jdk 配置,请参阅Setting the JDK

  • JDK_HOME环境变量
  • JAVA_HOME环境变量
  • 在当前系统路径上

调试流程#

  1. 选择您想要调试的工作负载
  2. 右键点击workload并选择 Dev Config编辑您的调试配置
  3. 然后右键再次点击此工作负载并选择 Remote Debug
  4. Nocalhost 会在第一次debug时,自动下载依赖插件
  5. Nocalhost 将自动进入 DevMode 并开始远程调试

配置内容#

不同的开发人员的开发环境是不同的。 你应该根据实际情况来配置远程调试的配置。

配置示例#

Nocalhost Configs
name: java-remote-debugging
serviceType: deployment
containers:
- name: ""
dev:
...
command:
debug:
- ./debug.sh
debug:
remoteDebugPort: 5005
...

Maven Example#

The shell command for Maven example:

jdk >= 1.8 and springBoot >=2.2.1.RELEASE
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

For jdk <=1.7 you should replace -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 with -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005

For lower version of the springBoot you should replace -Drun.jvmArguments with -Dspring-boot.run.jvmArguments

Gradle Example#

The startup command for Gradle example:

Gradle's debug.sh
./gradlew bootRun --debug-jvm --no-daemon

IDE 中的调试配置#

VSCode debug 配置#

调试结束后,Nocalhost会自动配置vscodelaunch.json,下次你可以用快捷键F5直接启动调试。

Debug 参数#

debug支持自定义参数启动,你只需要在launch.json中的configurations下添加参数,当debug启动时,插件将把参数传递给调试器。

如果你需要在调试 Node.js 应用程序时启用诊断输出, 你只需要更改以下配置。

launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "nocalhost",
"request": "attach",
"name": "Nocalhost Debug",
"trace": true
}
]
}

支持的调试参数#

FAQ#

Java 调试器停在java.lang.reflect.Method.class 文件的 return ma.invoke(obj, args)#

执行命令 Java: Clean the Java language server workspace