Сервер MySQL и большинство клиентов
MySQL компилируются с пакетом
DBUG, автором первой версии
которого является Фред Фиш (Fred Fish).
При конфигурации MySQL в отладочном
режиме этот пакет дает возможность
получить трассировочный файл для
отладки программы. See
Раздел E.1.2, «Создание трассировочных файлов».
Чтобы воспользоваться пакетом
отладки, следует в вызове программы
задать опцию --debug="..." или
-#...
Большинство программ MySQL по
умолчанию имеют отладочную строку,
которая будет использована, если не
задана опция --debug. По
умолчанию трассировочный файл
обычно находится в
/tmp/имя_программы.trace под
Unix и в \имя_программы.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 или
идентификатором потока
(thread id) в каждой
строке вывода отладки или
трассировки. |
| g | Разрешает профайлинг. Создает файл с
именем dbugmon.out,
содержащий информацию, которую
можно использовать для
профайлинга программы. За этим
флагом может следовать список
ключевых слов; если такой
список задан, то профайлинг
будет применяться только для
функций из этого списка. Если
задан нулевой список ключевых
слов, то профайлинг применяется
ко всем функциям. |
| L | Идентифицирует номер строки исходного файла для каждой строки вывода отладки или трассировки. |
| n | Задает вывод глубины вложенности текущей функции для каждой строки вывода отладки или трассировки. |
| N | Задает нумерацию каждой строки в
выводе dbug. |
| o | Переадресует выходной поток отладчика в указанный файл. По умолчанию вывод осуществляется в stderr. |
| O | То же, что и o, но указанный
файл сбрасывается на диск
каждый раз между операциями
записи. При необходимости этот
файл закрывается и снова
открывается каждый раз между
операциями записи. |
| p | Ограничивает действия отладчика
указанным процессом. Процесс
должен быть идентифицирован
макросом DBUG_PROCESS и
совпадать с указанным в списке
для действий отладчика. |
| P | Выводит имя текущего процесса для каждой строки вывода отладки или трассировки. |
| r | Не наследовать уровень вложенности функции в предыдущем состоянии при переходе в новое состояние. Полезно, если вывод должен начинаться с левого поля. |
| S | Выполнять функцию
_sanity(_file_,_line_) для
каждой отлаженной функции, пока
_sanity() не возвратит
значение, отличное от
0. (Главным образом
используется совместно с
safemalloc для
определения утечек памяти). |
| t |
