А как писать багрепорты? (И пользоваться gdb)

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Obscurus
Сообщения: 176

А как писать багрепорты?

Сообщение Obscurus »

Вобщем проблема такая - пользуюсь хорошей программой qtractor, но она выпадает в сегфолт при выполнении некоторых действий с midi-клипами. Я писал разработчику, подробно рассказывал куда и как нажимал, перетаскивал; отправлял ему образцы файлов и тд. Но воспроизвести ошибку ему так и не удалось, возможно и у всех остальных она работает нормально, но мне не легче.
Вот собственно и сам вопрос - как же правильно отлавливать баги в больших приложениях? Слышал много про отладчик gdb, но с ассемблером у меня не очень. Как можно поступить в этом случае?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: А как писать багрепорты?

Сообщение sash-kan »

ассемблер-то тут при чём?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Obscurus
Сообщения: 176

Re: А как писать багрепорты?

Сообщение Obscurus »

sash-kan писал(а):
29.08.2009 22:30
ассемблер-то тут при чём?

Ну я смотрел примеры использования отладчика, и так понял, что при отладке он применяется довольно часто.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: А как писать багрепорты?

Сообщение watashiwa_daredeska »

Варианты следующие. Если собирали из исходников сами, то проверьте, что при сборке указывался ключ -g для gcc (или аналог «включить отладочную информацию» для других компиляторов). Если нет, пересоберите с ключиком. Включите у себя ulimit -c unlimited, в этом же терминале запустите программу. После падения найдите файл core и передайте его разработчику вместе с исполняемым файлом. Так как они относительно большие, предварительно договоритесь с разработчиком, как это лучше сделать.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: А как писать багрепорты?

Сообщение Portnov »

Ещё вариант, с передачей более скромного объёма информации, чем core-файл: собранную с отладочной информацией (тот самый ключик -g) программу запустить командой

gdb qtractor

затем добиться паденитя программы. В терминале, откуда запускали, будет сообщение об ошибке и приглашение "gdb>". В ответ на приглашение ввести команду "bt" (она выдаст функцию, в которой произошла ошибка, и кто её вызывал). Затем ctrl-D для выхода. Весь вывод gdb (сообщение об ошибке и backtrace) отправить разработчику.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Obscurus
Сообщения: 176

Re: А как писать багрепорты?

Сообщение Obscurus »

Большое спасибо всем ответившим! Буду пробовать :)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: А как писать багрепорты?

Сообщение watashiwa_daredeska »

Portnov писал(а):
30.08.2009 10:24
В ответ на приглашение ввести команду "bt" (она выдаст функцию, в которой произошла ошибка, и кто её вызывал). Затем ctrl-D для выхода.
Если программа многопоточная, этого может быть мало. Надо еще по стекам всех потоков пройти и для каждого сделать bt.
Спасибо сказали: