tzengsh_BTstt 发表于 2024-8-12 16:07:08

[分享]让后端代理/接口脚本编写也能像前端一样用上debugger

本帖最后由 tzengsh_BTstt 于 2024-8-14 11:08 编辑

Hi, 夥伴们:
在开发O2OA后端的代理/接口脚本的场景,
如果遇到异常时虽然能用print函数输出调试信息缩小范围,
但相信对各位夥伴们有种「隔靴抓痒」的感觉吧?

如果这时能看到程序走向和变数内容等讯息,
相信开发效率也能得到大幅度的提升才是。

得幸O2OA团队的先见之明,
在新版O2OA后端脚本的部份改用GraalVM运行,
让本文标题成为能实现的事实。

个人在一阵摸索后已经能使用Chrome DevTools进行
后端的代理/接口脚本的变数内容监看和暫停或繼續執行執行指令碼等动作。
设置步骤如下:
1. 在start_linux_debug.sh脚本的最后一行的`setsid ${current_dir}/jvm/linux_java11/bin/java...`
加入以下参数启用GraalVM脚本调试功能:

-Dpolyglot.inspect=0.0.0.0:9222
-Dpolyglot.inspect.Secure=false
--add-exports=com.oracle.truffle.tools.profiler/com.oracle.truffle.tools.utils.json=com.oracle.truffle.tools.chromeinspector
--add-exports=com.oracle.truffle.tools.profiler/com.oracle.truffle.tools.profiler=com.oracle.truffle.tools.chromeinspector



2. 以start_linux_debug.sh脚本启动系统。

3. 在欲调试的代理/接口脚本加入debugger语句。


4. 代理在代理右方“属性”面板点击“立即运行”,如果是接口则使用API测试工具进行呼叫。

5. 开启日志查看器,会发现`E.g. in Chrome open: devtools://devtools/bundled/js_app.html?ws=0.0.0.0:9222/...`


6. 复制网址`devtools://devtools/bundled/js_app.html?ws=0.0.0.0:9222/...`,并将0.0.0.0改为O2OA主机实际位址。

7. 用Chrome开启此网址,会自动开启名为Unnamed的临时脚本(重新连接时才会进入),按F8跳过。


8. Chrome DevTools会自动产生一个临时脚本,内容即为本次欲调试的代理/接口脚本,并停留在debugger语句。


9. 接下来依Chrome DevTools提供功能常规操作即可。


论坛管理员 发表于 2024-8-14 11:15:06

非常非常感谢您的分享,管理员这边找相关同事也来试用试用哈:lol:lol
页: [1]
查看完整版本: [分享]让后端代理/接口脚本编写也能像前端一样用上debugger