2010-07-27 3 views
7

Каков наилучший способ анализа сбоев в Linux?Анализ сбоев в Linux

Мы планируем создать программное обеспечение и доставить версию для тестировщиков. Тестеры могут не помнить, как воспроизводить авария, или авария может быть полностью прерывистой. У них также не будет среды разработки на своих машинах. Программное обеспечение написано на C/C++ и скомпилировано в собственный машинный код для распространения.

+0

Возможный дубликат http://stackoverflow.com/questions/914833/linux-c-how-to-debug-release-application – DumbCoder

ответ

7

Если у вас есть место на диске, чтобы приложение создать свой CoreDump, когда он выходит из строя.

ulimit -c unlimited 

Позже вы можете его отладить с помощью GDB.

3

Помимо выверки и стекирования, как уже отмечалось, убедитесь, что вы можете легко определить, какие версии ваших исполняемых пользователей запущены, и иметь возможность ответить на то, какая версия каждого исходного файла переходит в бинарную версию (т.е. ваша система управления исходным кодом и ваши скрипты сборки). В противном случае не поможет ни основной файл, ни трассировка стека.

3

Дампы с сердечником полезны, но они не всегда говорят вам все, что вы хотите знать о том, как вы оказались в состоянии ошибки.

Действия регистрации, входные данные и события могут быть очень полезными. Если вы можете регистрировать каждый запуск вашей программы таким образом, чтобы в случае сбоя разработчик мог получить доступ к журналу и восстановить его, может быть очень полезно.

Если возможно, вы должны создавать свои программы с генерируемыми максимальными отладочными символами, а затем отделять их, если вы не хотите или не можете позволить своим версиям выпуска иметь их, но сохраняйте копию каждой выпущенной версии с помощью символов отладки которые вы можете связать с основным файлом, если вам нужно отладить сбой.

Смежные вопросы