使用GDB调试Firefox构建时在Javascript中的一行中断
我正在Firefox中开发Javascript。我正在使用gdb在SpiderMonkey JS引擎中设置断点,并希望在进行特定分配时中断,并观察堆状态。我应该如何设置断点 我尝试过插入Math.cos调用之类的操作。比如说,使用GDB调试Firefox构建时在Javascript中的一行中断,javascript,firefox,gdb,spidermonkey,Javascript,Firefox,Gdb,Spidermonkey,我正在Firefox中开发Javascript。我正在使用gdb在SpiderMonkey JS引擎中设置断点,并希望在进行特定分配时中断,并观察堆状态。我应该如何设置断点 我尝试过插入Math.cos调用之类的操作。比如说, <body> <p> Hi </p> <script> var container = []; for (var i = 0; i < 125000; ++i) { contain
<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>
嗨
var容器=[];
对于(变量i=0;i<125000;++i){
容器[i]=document.createElements('http://www.w3.org/2000/svg","形象",;
}
数学cos(1);//我想在这里休息一下
// ...
我使用/mach run--debug运行firefox,并在js引擎中的js::math_cos处设置一个断点,然后打开html文件,但该断点从未被击中
但是,如果我使用相同的JS代码运行JS shell,那么每当在输入Javascript中调用math.cos时,就会出现JS::math_cos处的断点,可能Firefox build使用的代码路径与JS shell不同,但我找不到它。我添加了一个选项——启动Firefox时禁用-e10s,即运行/mach run--disable-e10s--debug
,它现在会在脚本中的所有断点上中断