E.3 Пакет DBUG
E.3 Пакет DBUG
Сервер MySQL и большинство клиентов MySQL компилируются с пакетом DBUG,
автором первой версии которого является Фред Фиш (Fred Fish). При
конфигурации MySQL в отладочном режиме этот пакет дает возможность
получить трассировочный файл для отладки программы. See section E.1.2 Создание трассировочных файлов.
Чтобы воспользоваться пакетом отладки, следует в вызове программы задать
опцию --debug="..." или -#...
Большинство программ MySQL по умолчанию имеют отладочную строку, которая будет
использована, если не задана опция --debug. По умолчанию
трассировочный файл обычно находится в `/tmp/имя_программы.trace' под Unix и
в `\имя_программы.trace' под Windows.
Строка управления отладкой представляет собой последовательность
разделенных двоеточиями полей, как в следующем примере:
<field_1>:<field_2>:...:<field_N>
Каждое поле состоит из обязательного флагового символа, за которым следует
необязательный символ "," и разделенный запятыми список модификаторов:
flag[,modifier,modifier,...,modifier]
В настоящее время распознаются следующие символы флагов:
Таблица 1
Флаг
Таблица 1
Флаг
| Описание
Описание
|
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 | Разрешает трассировку вызовов функций/выход из функций. За этим
параметром может следовать список (содержащий только один модификатор).
Данный модификатор задает число - максимальный уровень вложения функций,
ниже которого не производится вывод ни для отладочного, ни для
трассировочного макросов. Параметр по умолчанию задается во время
компиляции.
|
Ниже представлены некоторые примеры строк управления отладкой, которые
можно применять в командной строке оболочки (символ "-#" обычно
используется для внедрения управляющей строки в программу):
-#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.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий
| |