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 运行文件 Program arguments 运行执行文件的喽喽,都是node 命令 的执行参数
--inspect=127.0.0.1:9229
这个配置是为了在谷歌浏览器上调试 详情请参考,node 官方文档
js调试配置
首先,在你的js运行文件上加入debugger <br> 然后,打开,inspect, 地址是chrome://inspect/#devices
运行debug
点击这个小虫子 这样,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 未本地化版本许可协议进行许可。