суббота, 21 июля 2018 г.

GDB

Отладчик gdb, оказывается, очень мощная штука - умеет ловить сигналы, выполнять программу в обратном направлении, показывать стек и массу других интересных вещей. 

Можно почитать быстрый старт, а можно - подробную документацию.

2 комментария:

trinidados комментирует...
Этот комментарий был удален автором.
trinidados комментирует...

Во многих ОС gdb не может отлаживать программы, порождающие сыновние процессы fork-ом. После форка отладчик будет отслеживать только отцовский процесс. Если в сыновьем процессе есть точка останова (брякпоинт) - он получит SIGTRAP и завершится. Но есть способ обхода этого ограничения, который описан здесь: https://sourceware.org/gdb/onlinedocs/gdb/Forks.html

В двух словах это делается так: ставим в сыне sleep, пока он спит, с помощью ps узнаем его pid, запускаем еще один экземпляр gdb, который прикрепляем к сыну по его pid.

А вот под Линуксом отладка форкающихся программ возможна. По той же ссылки приведены соответствующие флаги.