zoukankan      html  css  js  c++  java
  • 本地chrome调试服务器node

    Node内置了V8引擎提供的 inspector 调试器,可以通过 TCP 协议从外部访问这个调试器,方便对Node程序进行调试。启动调试的标志有:

    Flag
    Meaning
    --inspect
    • Enable inspector agent                                             (一直向下运行,直到源码 debugger 处才进入暂停状态)
    • Listen on default address and port (127.0.0.1:9229)   (调试器默认绑定的ip和port,只能本机连接)
    --inspect=[host:port]
    • Enable inspector agent
    • Bind to specified address or hostname host (default: 127.0.0.1)
    • Listen on port port (default: 9229)      (绑定到公网ip或0.0.0.0,任何能连接该ip的外部客户端都可以连接到调试器,很危险,需要设置防火墙和其他访问控制。)
    --inspect-brk
    • Enable inspector agent
    • Listen on default address and port (127.0.0.1:9229)
    • Break before user code starts                                    (在用户代码开始处暂停)
    --inspect-brk=[host:port]
    • Enable inspector agent
    • Bind to address or hostname host (default: 127.0.0.1)
    • Listen on port port (default: 9229)
    • Break before user code starts
    node inspect  script.js
    • Spawn child process to run user's script under --inspect flag;
    • and use main process to run CLI debugger.             (当前命令行进程为调试界面,子进程为node应用,在用户代码的首行进入暂停状态)
    node inspect --port=xxxx  script.js
    • Spawn child process to run user's script under --inspect flag;
    • and use main process to run CLI debugger.
    • Listen on port port (default: 9229)
    具体步骤:
    1.使用 --inspect-brk=host:port 标志启动远端服务器内的 inspector 调试器
     
    2.在本地访问 http://[host:port]/json/list得到 devtoolsFrontendUrl:
     
    3.本地访问devtoolsFrontendUrl得到调试界面:
     
    注意:
    1. 通过本地chrome devtool 调试远端服务器代码时,远端服务器有风险,要设置访问控制,如白名单进行限制。
    2. 或者通过 node inspect server.js 在服务器的CLI界面调试。
    3. 或者通过SSH进行端口转发,禁止任意客户端连接服务器的inspector调试器,更安全:
      先--inspect 启动服务器端的调试器,仅限本机可以连接:
     
             本地客户端启动ssh端口转发:
        $ ssh -L 9221:localhost:9229 root@192.168.0.207
            
             本地chrome浏览器获取devtoolsFrontendUrl:
            
              修改devtoolsFrontendUrl的端口后在本地访问,获得调试界面:

     

  • 相关阅读:
    763. 划分字母区间(贪心算法)
    1282. 用户分组(贪心算法)
    698. 划分为k个相等的子集
    560. 和为K的子数组
    面试题 16.10. 生存人数
    Python:对列表进行排序并相应地更改另一个列表?
    数据竞赛总结
    面试提问之请你介绍一下xxx方法
    常用数学符号读法
    round() 函数
  • 原文地址:https://www.cnblogs.com/kevin2chen/p/9347442.html
Copyright © 2011-2022 走看看