查看: 1943|回复: 1

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

升级   3.73%

9

主题

17

回帖

373

积分

注册会员

Rank: 2

积分
373
发表于 2024-8-12 16:07:08 | 显示全部楼层 |阅读模式
本帖最后由 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提供功能常规操作即可。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2024-8-14 11:15:06 | 显示全部楼层
非常非常感谢您的分享,管理员这边找相关同事也来试用试用哈
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread