Вобщем проблема такая - пользуюсь хорошей программой qtractor, но она выпадает в сегфолт при выполнении некоторых действий с midi-клипами. Я писал разработчику, подробно рассказывал куда и как нажимал, перетаскивал; отправлял ему образцы файлов и тд. Но воспроизвести ошибку ему так и не удалось, возможно и у всех остальных она работает нормально, но мне не легче.
Вот собственно и сам вопрос - как же правильно отлавливать баги в больших приложениях? Слышал много про отладчик gdb, но с ассемблером у меня не очень. Как можно поступить в этом случае?
А как писать багрепорты? (И пользоваться gdb)
Модератор: Модераторы разделов
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: А как писать багрепорты?
ассемблер-то тут при чём?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Obscurus
- Сообщения: 176
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: А как писать багрепорты?
Варианты следующие. Если собирали из исходников сами, то проверьте, что при сборке указывался ключ -g для gcc (или аналог «включить отладочную информацию» для других компиляторов). Если нет, пересоберите с ключиком. Включите у себя ulimit -c unlimited, в этом же терминале запустите программу. После падения найдите файл core и передайте его разработчику вместе с исполняемым файлом. Так как они относительно большие, предварительно договоритесь с разработчиком, как это лучше сделать.
Мои розовые очки
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: А как писать багрепорты?
Ещё вариант, с передачей более скромного объёма информации, чем core-файл: собранную с отладочной информацией (тот самый ключик -g) программу запустить командой
gdb qtractor
затем добиться паденитя программы. В терминале, откуда запускали, будет сообщение об ошибке и приглашение "gdb>". В ответ на приглашение ввести команду "bt" (она выдаст функцию, в которой произошла ошибка, и кто её вызывал). Затем ctrl-D для выхода. Весь вывод gdb (сообщение об ошибке и backtrace) отправить разработчику.
gdb qtractor
затем добиться паденитя программы. В терминале, откуда запускали, будет сообщение об ошибке и приглашение "gdb>". В ответ на приглашение ввести команду "bt" (она выдаст функцию, в которой произошла ошибка, и кто её вызывал). Затем ctrl-D для выхода. Весь вывод gdb (сообщение об ошибке и backtrace) отправить разработчику.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
Obscurus
- Сообщения: 176
Re: А как писать багрепорты?
Большое спасибо всем ответившим! Буду пробовать 
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: А как писать багрепорты?
Если программа многопоточная, этого может быть мало. Надо еще по стекам всех потоков пройти и для каждого сделать bt.
Мои розовые очки