# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • E Перенос на другие системы
    • E.1 Отладка сервера MySQL
    • E.2 Отладка клиента MySQL
    • E.3 Пакет DBUG
    • E.4 Методы блокировки
    • E.5 Замечания по потокам RTS
    • E.6 Различия между разными потоковыми пакетами

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

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]

В настоящее время распознаются следующие символы флагов:

Флаг Описание
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.

User Comments

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.