按文档描述
通过 OH\_JSVM\_OpenInspector 搭配 OH\_JSVM\_WaitForDebugger 可以实现对JS代码远程调试,通过一系列操作开启DevTools后,发现2个问题
1、客户端第一次执行OH\_JSVM\_RunScript 后在devtools会有自动断点,那后续OH\_JSVM\_RunScript 代码如何触发自动或者手动的断点呢?
2、DevTools里面的Console无法使用,特别不友好。图里面输入了globalThis, console卡死不输出,经过测试发现需要等待客户端一次console.log的输出,globalThis的值才会被log出来
1、关于自动断点:
在执行JS代码之前,调用OH\_JSVM\_OpenInspector创建socket连接 。
然后调用OH\_JSVM\_WaitFordebugger等待主机与inspector建立socket连接 。
检查端侧端口是否打开成功,可以通过命令行工具hdc shell "netstat -anp | grep 9225"来查看。
在DevTools中输入localhost:9229/json,回车进入DevTools源码页,即可看到在应用中通过OH\_JSVM\_RunScript执行的JS源码,此时可以在源码页打断点 。
2、关于DevTools中的Console:
确保在配置文件module.json中配置网络权限,并开启DevEco Studio的Debug模式(无需设置断点),或者在非主线程的其他线程中运行JSVM。
参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/jsvm-debugger-cpuprofiler-heapsnapshot-V5