我正在使用Firefox中的Javascript开发。我正在使用gdb在SpiderMonkey JS引擎中设置断点,并希望在进行特定分配的点处中断并观察堆状态。我应该如何设置断点?
我已经尝试过类似插入Math.cos调用的操作。例如,
<body>
<p> Hi </p>
<script>
var container = [];
for (var i = 0; i < 125000; ++i) {
container[i] = document.createElementNS('http://www.w3.org/2000/svg', 'image');
}
Math.cos(1); // I want to break here
// ...
</script>
</body>
我用./ mach run --debug运行firefox,并在JS引擎的js :: math_cos处设置一个断点,然后打开html文件,但断点从未被击中。
但是,如果我使用相同的JS代码运行JS Shell,则只要在输入Javascript中对Math.cos进行调用,就会遇到js :: math_cos的断点,也许Firefox构建所采用的代码路径与其JS不同外壳,但找不到。
[我在启动Firefox(即运行./mach run --disable-e10s --debug
时添加了一个选项--disable-e10s,现在在脚本中的所有断点处都断开了。