Разрыв строки в Javascript при отладке сборки Firefox с помощью GDB - PullRequest
0 голосов
/ 12 октября 2019

Я работаю с эксплойтами Javascript в Firefox. Я использую 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>

Я запускаю Firefox с . / Mach run --debug и устанавливаю точку останова на js :: math_cos в движке JS, затем открываю html-файл, ноточка останова никогда не достигается.

Однако, если я запускаю оболочку JS с тем же кодом JS, точка останова в js :: math_cos достигается каждый раз, когда во входном Javascript делается вызов Math.cos, возможноСборка Firefox использует другой путь кода, чем его оболочка JS, но я не смог ее найти.

...