2008-11-26 6 views
21

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

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

ответ

40

Вы можете поручить 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"

+1

+1 очень ПОЛЕЗНЫЕ намеком – 2011-01-03 12:46:38

-1

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

gcc -g -o myfile myfile.c 

Затем загрузите дамп в GDB после аварии (или прозрения, или ДДД)

gdb myfile core 
+17

Stackdump! = CoreDump – Gerhard 2008-11-26 12:01:20