Spec-Zone .ru
спецификации, руководства, описания, API

23.4.3. Пакет DBUG

Сервер MySQL и большинство клиентов MySQL компилируются с пакетом DBUG, первоначально создаваемым Фредом Фишем. Когда Вы сконфигурировали MySQL для того, чтобы отладить, этот пакет позволяет получить файл трассировки того, что отлаживает программа. См. Раздел 23.4.1.2, "Создавая Файлы трассировки".

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

Вы используете пакет отладки, вызывая программу с --debug="..." или -#... опция.

У большинства программ MySQL есть строка отладки значения по умолчанию, которая используется, если Вы не определяете опцию к --debug. Файл трассировки значения по умолчанию обычно /tmp/program_name.trace на Unix и \program_name.trace на Windows.

Строка управления отладкой является последовательностью разделенных от двоеточия полей следующим образом:

<field_1>:<field_2>:...:<field_N>

Каждое поле состоит из обязательного символа флага, сопровождаемого дополнительным","и список разделенных запятой значений модификаторов:

flag[,modifier,modifier,...,modifier]

Следующая таблица показывает в настоящий момент распознанные символы флага.

Флаг Описание
d Включите выводу от DBUG _ <N> макросы для текущего состояния. Может сопровождаться списком ключевых слов, который выбирает вывод только для макросов DBUG с тем ключевым словом. Пустой список ключевых слов подразумевает вывод для всех макросов.
D Задержка после каждой выходной строки отладчика. Параметром является число десятых частей секунд, чтобы задержаться согласно машинным возможностям. Например, -#D,20 определяет задержку двух секунд.
f Предельная отладка, трассировка, и профилирование к списку именованных функций. Отметьте, что нулевой список отключает все функции. Соответствующее d или t флаги должны все еще быть даны; этот флаг только ограничивает их действия, если им включают.
F Идентифицируйте имя исходного файла для каждой строки отладки или проследите вывод.
i Идентифицируйте процесс с PID или распараллельте ID для каждой строки отладки или проследите вывод.
g Позвольте профилировать. Создайте вызванный файл dbugmon.out содержа информацию, которая может использоваться, чтобы профилировать программу. Может сопровождаться списком ключевых слов, которые выбирают профилирование только для функций в том списке. Нулевой список подразумевает, что все функции рассматривают.
L Идентифицируйте номер строки исходного файла для каждой строки отладки или проследите вывод.
n Напечатайте текущую функциональную глубину вложения для каждой строки отладки или проследите вывод.
N Число каждая строка отладки выводится.
o Перенаправьте поток вывода отладчика к указанному файлу. Вывод значения по умолчанию stderr.
O Как o, но файл действительно сбрасывается между каждой записью. При необходимости файл закрывается и вновь открывается между каждой записью.
p Предельные действия отладчика к указанным процессам. Процесс должен быть идентифицирован с DBUG_PROCESS макрос и соответствие один в списке для действий отладчика, чтобы произойти.
P Напечатайте текущее имя процесса для каждой строки отладки или проследите вывод.
r Продвигая новое состояние, не наследуйте функциональный уровень вложенности предыдущего состояния. Полезный, когда вывод должен запуститься в левом поле.
S Действительно функционировать _sanity(_file_,_line_) в каждой отлаженной функции до _sanity() возвраты что-то, что отличается от 0.
t Включите вызову функции/, выходят из соединительных линий. Может сопровождаться списком (содержащий только один модификатор) предоставление числового максимального уровня трассировки, вне которого никакой вывод не происходит или для отлаживающих или для прослеживающих макросов. Значение по умолчанию является опцией времени компиляции.

Некоторые примеры отладки управляют строками, которые могли бы появиться на командной строке оболочки ( -# обычно используется, чтобы представить строку управления прикладной программе):

-#d:t-#d:f,main,subr1:F:L:t,20-#d,input,output,files:n-#d:t:i:O,\\mysqld.trace

В MySQL, общие теги, чтобы напечатать (с d опция), enter, exit, error, warning, info, и loop.