Ваши отчеты об ошибках играют существенную роль в обеспечении
надежности GDB.
Сообщение об ошибке может помочь вам найти решение вашей проблемы, а может и не помочь. Но в любом случае, основная функция отчета об ошибке---помочь всему обществу сделать следующую версию GDB лучше. Отчеты об ошибках---это ваш вклад в поддержку GDB.
Чтобы отчет об ошибке сделал свое дело, вы должны включить в него информацию, которая даст нам возможность ее устранить.
Вы можете найти контактную информацию для многих организаций поддержки и частных лиц в файле `etc/SERVICE' в дистрибутиве GNU Emacs.
В любом случае, мы также рекомендуем вам послать отчет об ошибке в GDB по этому адресу:
<A HREF="mailto:bug-gdb@gnu.org">bug-gdb@gnu.org</A>
Список рассылки `bug-gdb' имеет группу новостей `gnu.gdb.bug', которая служит как повторитель. Список рассылки и группа новостей имеют в точности одинаковые сообщения. Часто люди посылают сообщения об ошибках в группу новостей, вместо отправки по электронной почте. Это работает, но имеется одна проблема, которая может быть решающей: группа новостей часто не имеет информации об обратном адресе отправителя. Таким образом, если нам потребуется запросить дополнительную информацию, мы можем не иметь возможности связаться с вами. По этой причине, лучше посылать отчеты об ошибках в список рассылки.
В крайнем случае, посылайте отчеты об ошибках на бумаге по адресу:
GNU Debugger Bugs Free Software Foundation Inc. 59 Temple Place - Suite 330 Boston, MA 02111-1307 USA
Часто люди опускают факты, потому что думают, что знают причины проблемы, и полагают, что некоторые детали не имеют значения. Таким образом, вы можете считать, что имя переменной, которую вы используете в примере, не имеет значения. Возможно это так, но нельзя быть уверенным в этом. Может быть ошибкой является неверное обращение к памяти, которое выбрало данные из ячеек, где хранилось это имя; возможно, если бы имя было другим, содержимое этих ячеек ввело бы отладчик в заблуждение, и ошибка не была бы замечена. Относитесь к этому осторожно, и приводите конкретные, полные примеры. Это самое простое что вы можете сделать, и наиболее полезное.
Помните, что цель отчета об ошибке состоит в том, чтобы дать нам возможность установить дефект. Может случиться, что об этой ошибке нам уже сообщали, но не вы, не мы не можем этого знать, если отчет об ошибке не будет полным и самодостаточным.
Иногда люди дают несколько поверхностных фактов и спрашивают, "не говорит ли это об ошибке?". Такие сообщения о дефектах бесполезны, и мы убеждаем всех отказываться отвечать на них, за исключением того, чтобы побудить автора отчета послать его правильно.
Чтобы дать нам возможность устранить ошибку, вы должны включить в сообщение следующее:
Если мы должны будем угадывать аргументы, мы возможно сделаем это неправильно и можем не столкнуться с ошибкой.
Конечно, если ошибка состоит в получении GDB фатального сигнала, то мы, конечно, заметим это. Но если ошибкой является некорректный вывод, мы можем не заметить этого, если это не бросается в глаза. Вы также можете не дать нам возможности ошибиться.
Даже если ваша проблема заключается в фатальном сигнале, вы все же должны сообщить об этом явно. Предположим, происходит что-то странное, например, ваша копия GDB рассинхронизировалась, или вы столкнулись с ошибкой в библиотеке Си вашей системы. (Такое бывало!) Ваша копия может завершиться аварийно, а наша нет. Если вы предупредите нас об ожидаемой аварии, а в нашей системе этого не произойдет, мы будем знать, что ошибка произошла не из-за нас. Если вы нас не предупредите, мы не сможем сделать никаких выводов из наших наблюдений.
Номера строк в наших исходных текстах разработки не будут соответствовать вашим. Ваши номера строк не дадут нам никакой полезной информации.
Вот некоторые вещи, не являющиеся обязательными:
Это часто занимает много времени и приносит мало пользы, потому что мы найдем ошибку посредством выполнения одного примера под управлением отладчика с точками останова, а не чистыми выводами из серии примеров. Мы рекомендуем вам сохранить это время для чего-нибудь другого.
Конечно, если вы сможете найти более простой пример для отчета вместо первоначального, это будет удобнее для нас. Выделение ошибок в выводе будет проще, выполнение под управлением отладчика будет занимать меньше времени, и так далее.
Однако, это упрощение не является жизненно важным; если вы не хотите делать этого, сообщайте об ошибке в любом случае и посылайте нам весь тестовый материал, который вы использовали.
Иногда для такой сложной программы, как GDB, очень трудно создать пример, который заставит программу следовать по определенному пути в процессе выполнения. Если вы не пришлете нам пример, мы не сможем сконструировать его сами, и таким образом не сможем проверить, что ошибка устранена. И если мы не сможем понять, какую ошибку вы пытаетесь исправить, или почему ваша заплата являются улучшением, мы не используем ее. Тестовый пример поможет нам во всем разобраться.