Можно ли ускорить отладку с помощью GDB? - PullRequest
0 голосов
/ 24 марта 2010

Я отлаживаю с помощью GDB программу C ++. Требуется 10 минут, чтобы добраться до интересной функции для отладки. Затем я проверяю переменные, разбираюсь в частях программы, перекомпилирую и снова запускаю GDB, пока не достигну этой точки.

Эта процедура иногда занимает немного времени. Интересно, можно ли как-нибудь ускорить. Есть идеи?

Спасибо

Ответы [ 5 ]

4 голосов
/ 24 марта 2010

Вы определенно не можете заставить свой компилятор оптимизировать код, чтобы он работал быстрее перед запуском GDB. Вы написали хорошие юнит-тесты? Приличный набор тестов может сэкономить вам много времени и лишний раз потратить ненужную сумму в отладчике.

1 голос
/ 24 марта 2010

Напишите тесты, которые запускают интересную функцию с различными входами. Затем вы можете отлаживать функцию, не беспокоясь об остальном коде.

1 голос
/ 24 марта 2010

есть постоянная инструкция gdb (своего рода миниязык, где вы автоматизируете процесс отладки). и есть также привязки Python, которые могут помочь вам автоматизировать GDB. отладка должна быть последним средством, вы должны вместо этого писать тесты или больше думать о том, что вы пишете, это значительно ускорит процесс отладки (так как вам, вероятно, больше не потребуется отладка, или очень редко).

0 голосов
/ 27 апреля 2011

В GNU / Linux вы также можете попробовать:

checkpoint
...
restore n

если ваша программа не многопоточная (checkpoint использует внутренне fork(), поэтому применяются те же ограничения).

Это должно быть 10 минут, необходимых для начала отладки!

0 голосов
/ 25 марта 2010

Вы пробовали UndoDB: http://undo -software.com /

Позволяет переходить назад и вперед - обратимая отладка. В то время как GDB имеет свою собственную обратимую отладку в наши дни, работа в этом режиме значительно замедляется - в 20 000 раз или хуже. UndoDB будет работать с замедлением примерно в 1,7 раза, так что вы можете быстро перейти к интересной части, а затем снова и снова возвращаться к своей ошибке.

(Раскрытие информации: я работаю на Undo Software)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...