У меня есть большое количество HTML файлов для отладки. Я написал сценарий python GDB и вызвал gdb ./path/to/firefox
и открыл каждый из HTML файлов в Firefox, затем запустил сценарий, чтобы сделать то, что я хочу. Проблема в том, что этот процесс очень медленный. Мне интересно, есть ли более быстрый способ сделать это.
Я заметил, что все остальное довольно быстро, кроме точки после того, как GDB выводит следующее:
$ gdb ../firefox-63.0.3/objdir-ff-dbg/dist/bin/firefox
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ../firefox-63.0.3/objdir-ff-dbg/dist/bin/firefox...done.
(gdb) set args file:///home/ug16zy2/test.html
(gdb) r
Starting program: /home/ug16zy2/firefox-63.0.3/objdir-ff-dbg/dist/bin/firefox file:///home/ug16zy2/test.html
warning: Error disabling address space randomization: Operation not permitted
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Тогда мне нужно ждать долгое время (около 20 секунд), пока он не выведет следующую строку:
Loading JavaScript value pretty-printers; see js/src/gdb/README.
If they cause trouble, type: disable pretty-printer .* SpiderMonkey
SpiderMonkey unwinder is disabled by default, to enable it type:
enable unwinder .* SpiderMonkey
Что делает GDB и как мне избежать того, что занимает такое много времени?
PS: I Мне нужно использовать GDB, потому что я хочу остановить процесс при выполнении указанной строки c в коде JS. К сожалению, линия находится внутри обратного вызова, зарегистрированного с помощью прослушивателя событий. Проблема сводится к остановке Firefox, когда срабатывает прослушиватель событий И его функция обратного вызова завершает выполнение. (Если есть какая-либо другая альтернатива, которая может достичь того же, пожалуйста, дайте мне знать :) Большое спасибо!)