• 保姆级教程:VsCode调试docker中的NodeJS程序


    最近在写NodeJS相关的项目,运行在docker容器中,也是想研究一下断点调试,于是查阅相关资料,最终顺利配置好了。

    首先我选择了VsCode作为ide,并用VsCode来做NodeJS可视化debug的工作。

    由于VsCode 已将调试工具内置,所以只需要增加调试配置。应遵循以下步骤:

    第一步:单击首选项 -> 设置,打开设置选项卡。如下面的屏幕截图。

    第二步:在搜索输入中搜索“node debug”,你会看到Debug> JavaScript:Auto Attach Filter选项,选择“smart”作为选项的值。它将启用nodeJs的调试。

    第三步: 单击左侧工具栏上的调试图标,如图所示。然后单击运行和调试按钮,并添加配置。

    点击Add Configuration将跳转到一个名为 launch.json(./vscode/launch.json) 的文件,编写后的完整配置如下所示。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    {
     // 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": [
       {
         "type": "node",
         "request": "attach",
         "name": "Debug super api in docker",
         "restart": true,
         "port": 7676,
         "address": "localhost",
         "localRoot": "${workspaceFolder}",
         "remoteRoot": "/super-api",
         "protocol": "inspector"
       }
     ]
    }

    对上面的配置,我简单介绍一下。由于docker中的容器是被宿主机挂载进来的,所以要单独配置一个remoteRoot配置项,它的值就是实际项目在容器中的目录路径。

    而port填写的不是项目运行的端口号,而是node命令中--inspect设置的端口号,在我的项目中我在运行该容器的时候会把这个7676的端口暴露给宿主机(真实电脑)

    编辑好这个配置文件后,就可以设置一下断点,然后点击start debug按钮即可开始debug了。

    运行的效果,如图所示。

     

     可以看到Variables面板里面有显示运行到断点处的相关变量情况,而CALL STACK部分记录调用堆,方便我们追踪整个程序的调用层级和过程。左边最下面显示的是我们设置的所有断点(breakpoint),标记红色的是被执行到的断点。

    一句话总结:一个后端程序员最基本的修养是能断点调试程序。

  • 相关阅读:
    Spring Bean 生命周期详解
    [go]配置文件(CSV与YAML)读写
    PLC相关的
    TypeScript类的使用
    2022年重庆自考如何报名,有哪些条件和要求?
    JAVA:实现字符串WordLadder字梯算法(附完整源码)
    大数据必学Java基础(六十三):COW并发容器讲解
    R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...
    电子招标初学者指南
    品牌维权服务可覆盖哪些平台
  • 原文地址:https://www.cnblogs.com/freephp/p/16172202.html