在使用JSVM - API进行调试时,如何使用OH_JSVM_OpenInspector接口开启调试功能(结合示例代码说明)?

阅读 633
1 个回答

使用OH_JSVM_OpenInspector接口开启调试功能的步骤如下:

  1. 权限配置:在应用工程配置文件module.json中配置网络权限,确保应用具有网络访问权限,例如:

    "requestPermissions": [{
      "name": "ohos.permission.INTERNET",
      "reason": "$string:app_name",
      "usedScene": {
     "abilities": [
       "FromAbility"
     ],
     "when": "inuse"
      }
    }]
  2. 避免误报:为避免debugger过程中的暂停被误报为无响应异常,可以开启DevEco Studio的Debug模式(无需设置断点),或者在非主线程的其他线程中运行JSVM。
  3. 激活inspector:在执行JS代码之前,调用OH_JSVM_OpenInspector接口在指定的主机和端口上激活inspector,创建socket。例如OH_JSVM_OpenInspector(env, "localhost", 9225),在端侧本机端口9225创建socket,其中env是JavaScript虚拟机环境。
  4. 等待连接:调用OH_JSVM_WaitForDebugger,等待建立socket连接。
  5. 检查端口:检查端侧端口是否打开成功,通过hdc shell "netstat -anp | grep 9225"命令检查端口状态,结果为9225端口状态为“LISTEN"即可。
  6. 端口转发:转发端口,使用hdc fport tcp:9229 tcp:9225命令将PC侧端口9229转发到端侧端口9225,结果为"Forwardport result:OK"即可。
  7. 进入调试页面:在chrome浏览器地址栏输入"localhost:9229/json",回车获取端口连接信息,拷贝"devtoolsFrontendUrl"字段url内容到地址栏,回车进入DevTools源码页,此时将看到在应用中通过OH_JSVM_RunScript执行的JS源码,且暂停在第一行JS源码处,用户可在源码页打断点,通过按钮发出各种调试命令控制JS代码执行,并查看变量。

在示例代码中,EnableInspector函数展示了如何使用OH_JSVM_OpenInspectorOH_JSVM_WaitForDebugger开启调试功能,在执行JS代码前进行相关设置,为调试做好准备。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进