Использование stackdump из исполняемого файла Cygwin

Итак, я написал багги-код, который иногда разбивается... и создает файл stackdump.

Использование addr2line Я могу выяснить, как программа попала в точку сбоя, расшифровав адреса на единицу. Есть ли альтернативный инструмент, который может облегчить отладку с помощью дампов стека? Есть ли способ загрузить эту информацию в Insight/Gdb?

Ответы

Ответ 1

Вы можете поручить Cygwin запустить ваш отладчик gdb как раз во время возникновения ошибки. Для этого добавьте error_start=action в переменную окружения Cygwin:
export CYGWIN="$CYGWIN error_start=gdb -nw %1 %2"

Кроме того, вы можете заставить Cygwin генерировать реальный дамп ядра.
export CYGWIN="$CYGWIN error_start=dumper -d %1 %2"

Ответ 2

Во-первых, убедитесь, что вы построили с включенной отладкой источника (опция -g):

gcc -g -o myfile myfile.c

Затем загрузите дамп в gdb после сбоя (или проницательности, или ddd)

gdb myfile core