Использование 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