本帖最后由 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脚本调试功能:
[Bash shell] 纯文本查看 复制代码
-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提供功能常规操作即可。
|