У меня такой вопрос. У меня есть приложение (не написанное мной) и есть его сорсы. Но приложение работает нестабильно. Т.е. оно падает(процес приложения я не вижу).Есть ли способ каким-нибудь макаром отследить его падение,а точнее причину,по которой оно упало?
Заранее спасибо.
Падение приложения (Падение приложения)
Модератор: Модераторы разделов
-
Folderx
- Сообщения: 296
- ОС: fedora, mandriva
Re: Падение приложения
если gdb, надо сначала скомпилировать с ключом -g, а потом бинарник открыть в gdb
cc -g *.c -o prog;
gdb prog;
там внутри команды
list - показывает исходник
break 10 - устанавливает брейкпоинт на 10 строке
delete 1 - удаляет брейкпоинт номер 1
cont - продолжить до следующего брейкпоинта
step - сделать шаг на следующий оператор
display a[i] - отобразить значение a[i] и оставить
print a - отобразить значение a и не оставлять
undisplay 1 - удалить display номер 1
run - начать
cc -g *.c -o prog;
gdb prog;
там внутри команды
list - показывает исходник
break 10 - устанавливает брейкпоинт на 10 строке
delete 1 - удаляет брейкпоинт номер 1
cont - продолжить до следующего брейкпоинта
step - сделать шаг на следующий оператор
display a[i] - отобразить значение a[i] и оставить
print a - отобразить значение a и не оставлять
undisplay 1 - удалить display номер 1
run - начать
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Падение приложения
Ещё, возможно, поможет:
Отслеживает системные вызовы, сделанные программой. При просмотре выходного файла может обнаружиться ошибка (типичное: какой-то файл не удалось открыть, но в программе эта ошибка не обработана).
Код: Выделить всё
strace ваша-программа >& файл.logОтслеживает системные вызовы, сделанные программой. При просмотре выходного файла может обнаружиться ошибка (типичное: какой-то файл не удалось открыть, но в программе эта ошибка не обработана).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
rapa
- Сообщения: 29
- ОС: Linux Fedora 8
Re: Падение приложения
Спасибо.Но я не написал очень важную(как я понял из ответов) штуку.Поэтому извиняюсь и скажу её.Приложение-embedded как и Linux, другими словами бежит на борде(чипе).Поэтому опции gdb и starce отпадают,хотя может starce поможет,надо будет проверить.Есть ещё какие-нубудь идеи?
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: Падение приложения
Может помочь valgrind (мне помог)
-
korisk
- Сообщения: 205
- ОС: Xubuntu
Re: Падение приложения
rapa писал(а): ↑08.03.2009 00:35У меня такой вопрос.У меня есть проложение(не написаанное мной) и есть его сорсы.Но приложение работает не стабильно. Т.е. оно падает(процес приложения я не вижу).Есть ли способ каким-нибудь макаром отследить его падение,а точнее причину,по которой оно упало?
Заранее спасибо.
ulimit -c 43134134134
разрешит создание core файлов
после этого запускаете свою программу, (с программами в фоне не пробовал)
когда программа вылетит создастся файл PIDпроцесса.core
после этого выполняете команду
gdb ваша_программа новый_core_файл.core
из командной строки отладчика
backtrace или bt
она разматает стек вылетевшей программы и укажет место ошибки с точностью до строки, конечно программа должна быть скомпилирована с поддержкой отладки. Я использую параметр -ggdb в gcc.
В качестве рекомендации добавлю, что полезно бывает при первых компиляциях отключить оптимизацию.
Удач
PS, не сразу заметил про embedded. Но тут всё равно стоит покопать в сторону core файлов.
Registerd Linux user #486684 at http://counter.li.org/