使用 GDB 调试 Firefox 构建时在 Javascript 中的一行中断

我正在 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 shell 不同,但我找不到。


翻过高山走不出你
浏览 138回答 1
1回答

德玛西亚99

我在启动 Firefox 时添加了一个选项 --disable-e10s,即 running&nbsp;./mach run --disable-e10s --debug,它现在在脚本中的所有断点处中断。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript