node 源码 与 js 协同调试
发布于 6 年前 作者 zhongguozhe 1854 次浏览 来自 分享

author: HKK date:2018-10-20 source:https://github.com/zhanghengxin/record/wiki/node-源码-与-js-协同调试

 约定:
 这里面有些markdown不支持的。
 ^这里^    这中间是指注释
 <br> 是指换行

这种方式可以帮助一些同学 有效探究node 源码 不用谢,江湖再见

搭建 C++ 运行环境


Mac + CLion CLion 是一款 傻啦吧唧,这不是论文 如果你想要 免费的, 没有 {{肯定有的,自己找吧,毕竟一公布就容易被封}} 但是里面包含全部C++编译的玩意儿。。。

搭建项目


安装完毕你需要 node 源码 下载过程十分缓慢,我计算了一下,10kb/s,大概是五天时间。 你可以 找 佳航 ^我同事,你不认识很正常^ 他可以翻墙 只能用绿灯 然后将node-master 文件夹放入你的项目中 在此之前,因为需要编译,在你的 ** node-master ** ^项目文件夹^ terminal 输入

./configure --debug

然后输入

make -C out BUILDTYPE=Debug -j 4

-j 4 是指进程数,你可以往多了写,但容易报错

编译过程十分漫长,你可以看个“浙江卫视”

配置debug文件


兄弟们没有图片你们是不是看的很心酸。。。 没办法,还得上传。。。 编译之后,会生成node 运行文件 编译之后,会生成node 运行文件 Program arguments 运行执行文件的喽喽,都是node 命令 的执行参数

--inspect=127.0.0.1:9229 

这个配置是为了在谷歌浏览器上调试 详情请参考,node 官方文档

js调试配置


首先,在你的js运行文件上加入debugger <br> 然后,打开,inspect, 地址是chrome://inspect/#devices

运行debug


点击这个小虫子 image.png 这样,js 脚本就和 node 源码同时 调试了。

附带探究js


setTimeout 、 等等吧。。。 附带上一段js代码

console.log('1')
debugger // 这个debugger 非常重要,你要卡在前端,才能协同调试
setTimeout(function() {
  console.log('2');
  process.nextTick(function() {
    console.log('3');
  })
  new Promise(function(resolve) {
    console.log('4');
    resolve();
  }).then(function() {
    console.log('5')
  })
})

process.nextTick(function() {
  console.log('6');
})

new Promise(function(resolve) {
  console.log('7');
  resolve();
}).then(function() {
  console.log('8')
})

setTimeout(function() {
  console.log('9');
  process.nextTick(function() {
    console.log('10');
  })
  new Promise(function(resolve) {
    console.log('11');
    resolve();
  }).then(function() {
    console.log('12')
  })
})

写在最后


如果你有其他的好办法,期告之~~~ 最最最end 过程。。。一般般 就是时间慢 有问题,请留言

知识共享许可协议 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可。

回到顶部