O servidor MySQL e a maioria dos clientes MySQL são compilados com o pacote DBUG originalmente criado por Fred Fish. Quando se configura o MySQL para depuração, este pacote torna possível obter um arquivo trace sobre o que o programa está depurando. See Secção E.1.2, “Criando Arquivos Trace (Rastreamento)”.
Utiliza-se o pacote de depuração chamando o programa com a
opção --debug="..."
ou
-#...
.
A maioria dos programas MySQL tem uma string de depuração
padrão que será usada se você não especificar uma opção para
--debug
. O arquivo trace padrão é normalmente
/tmp/programname.trace
no Unix e
\programname.trace
no Windows.
A string de controle de depuração é uma sequência de campos separados por dois pontos como a seguir:
<field_1>:<field_2>:...:<field_N>
Cada campo consiste de um carcater de parâmetro obrigatório seguido por uma "," e lista de modificadores separdas por vírgula opcionais:
flag[,modifier,modifier,...,modifier]
Os carcteres de parâmetros atualmente reconhecidos são:
Parâmetro | Descrição |
d | Habilita a saída de macros DBUG_<N> para o estado atual. Pode ser seguido por uma lista de palavras chaves que selecionam a saída apenas para as macros DBUG com aquela palavra chave. Uma lista de palavras chaves vazia indica a saída para todas as macros. |
D | Atraso depois de cada linha de saída do depurados. O argumento é o
número de décimos de segundo do atraso, sujeito às
capacidades da máquina. Por exemplo,
-#D,20 atrasa em dois segundos |
f | Limita a depuração e/ou rastreamento, e perfilemento da lista de funções listadas. Note que uma lista nula disabilitará todas as funções. O parâmetro "d" ou "t" apropriado ainda deve ser dado, este parâmetro só limita as suas açõesse eles estiverem habilitados. |
F | Identifica o nome do arquivo fonte para cada linha de saída da depuração ou rastreamento. |
i | Identifica o processo com o PID ou a ID da thread para cada linha de saída da depuração ou rastreamento. |
g | Habilita a modelagem. Cria um arquivo chamado 'dbugmon.out' contendo informações que poder ser usadas para moldar o programa. Pode ser seguida por uma lista de palavras chaves que selecionam a modelagem apenas para as funções naquela lista. Uma lista nula indica que todas as funções serão consideradas. |
L | Identifica o número da linha do arquivo fonte para cada linha de saída da depuração ou rastreamento. |
n | Exibe a profundidade de aninhamento da função atual para cada linha de saída da depuração ou rastreamento. |
N | Número de cada linha de saída do dbug. |
o | Redireciona o fluxo de saída do depurador para um arquivo específico. A saída padrão é stderr. |
O | Igual a o , mas o arquivo é realmente descarregado
entre cada escrita. Quando necessário o arquivo é
fechado e reaberto entre cada escrita. |
p | Limita as ações do depurador para um processo específico. Um processo deve ser indentificado com a macro DBUG_PROCESS e corresponder a um dos itens especificados na lista de ações do depurador que devem ocorrer. |
P | Exibe o nome do processo atual para cada linha de saída da depuração ou rastreamento. |
r | Quando recebe um novo estado, não herda o nível de aninhamento da função do estado anterior. Útil quando a saída é iniciada na margem esquerda. |
S | Executa a função _sanity(_file_,_line_) a cada função depurada até que _sanity() retorne algo diferente de 0. (Geralmente usada com safemalloc para encontrar falhas de memória). |
t | Habilita a linhas do trace de chamada/saída de funções. Pode ser seguido por uma lista (contendo apenas um modificador) dando um o nível numérico máximo de rastreamento, além do que nenhuma saída será exibida, tanto para a depuração quanto para macros trace. O padrão é uma opção de tempo de compilação. |
Alguns exemplos de strings de controle do depurador que podem aparecer em uma linha de comando do shell (o "-#" é normalmente usado para introduzir uma string de controle a um aplicativo) são:
-#d:t -#d:f,main,subr1:F:L:t,20 -#d,input,output,files:n -#d:t:i:O,\\mysqld.trace
No MySQL, tags comuns de serem usadas (com a opção
d
) são:
enter
,exit
,error
,warning
,info
e loop
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.