敞开成长之旅!这是我参加「日新计划 12 月更文应战」的第32天,点击检查活动概况

又见插件主进程调试

编写过cocos creator插件的小伙伴,相信都会遇到一个比较头疼的问题,怎么调试自己编写的主进程代码。

简略的逻辑,你能够console.log完结调试工作,但是断点调试,是开发过程中的硬性需求,今天要介绍的便是在vscode里边编写调试代码。

在vscode中调试CocosCreator插件主进程

怎么运用

  1. 下载CocosCreator插件:DebugMainProcess,并启用该插件。
  2. 装置vscode插件:cc-plugin-debugger。
  3. 运用vscode翻开插件项目,launch.json中新建一个configuration

在vscode中调试CocosCreator插件主进程

  1. 运转configuration,在vscode中找到插件主进程的js代码,设置断点,当编辑器运转到该处时,vscode就会自动断下。

调试计划之一:Chrome Devtools

之前我也研究过,怎么在Chrome中调试,其原理便是从命令行以调试形式(--inpect)发动cocos creator,然后在Chrome中监听端口,进行debug。

为什么Chrome能够调试?

这一切的背面,都是调试协议的功劳。

chrome devtools只是调试的前端,咱们在里边的断点等操作,终究都是经过调试协议告知了node,当node执行到断点时,相同也会经过调试协议告知外部程序,感兴趣的能够了解下Chrome Devtools Protocol,简称CDP。

vscode的能够调试c++、js、java、c#等等言语,这么强壮的调试功能背面,都离不开调试协议。

调试计划之二:Vscode

运用Chrome Devtools调试有许多不方便的地方:

  • 有必要命令行发动,并敞开inspect选项。关于习惯dashboard翻开项目,比较费事,并且需要输入断点选项,也很费事。
  • Chrome里边需要设置监听的inspect选项的端口
  • 编写和调试代码,需要频繁的切换

跟着了解的深入,一个node程序,其实是存在一个调试server,用来和外部程序交互,而inspect选项,其实便是翻开了这个debug protocol server。

换而言之,这个debug server只需要翻开就能调试node程序,当咱们发动一个node服务后,node允许咱们经过:

process._debugProcess(process id)

强制敞开调试形式,这样咱们就无须重新发动inspect,就能直接调试现已被node加载的代码。

敞开调试server后,咱们还需要将调试工具连接到调试server,vscode对node的调试其实支撑的现已非常成熟了,在launch.json中新建一个如下配置:

{
  "type": "node",
  "request": "attach",
  "name": "CCMainProcessDebug",
  "port": 9229,
  "skipFiles": ["<node_internals>/**"]
}

然后咱们运转这个Configuration,vscode就会去连接本地端口为9229的debug server。

如果一切顺利,你就能够非常happy的debug了。

不足之处:

现在还没整理解怎么支撑sourcemap,所以现在还不能直接在ts代码中下断点,只能在js代码中下断点。

Creator检查主进程ID

在vscode中调试CocosCreator插件主进程