XOOPS Brasil

 

E.3. O Pacote DBUG

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. Veja mais informações sobre isto na Seçã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âmetroDescrição
dHabilita 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.
DAtraso 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
fLimita 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.
FIdentifica o nome do arquivo fonte para cada linha de saída da depuração ou rastreamento.
iIdentifica o processo com o PID ou a ID da thread para cada linha de saída da depuração ou rastreamento.
gHabilita 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.
LIdentifica o número da linha do arquivo fonte para cada linha de saída da depuração ou rastreamento.
nExibe a profundidade de aninhamento da função atual para cada linha de saída da depuração ou rastreamento.
NNúmero de cada linha de saída do dbug.
oRedireciona o fluxo de saída do depurador para um arquivo específico. A saída padrão é stderr.
OIgual a o, mas o arquivo é realmente descarregado entre cada escrita. Quando necessário o arquivo é fechado e reaberto entre cada escrita.
pLimita 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.
PExibe o nome do processo atual para cada linha de saída da depuração ou rastreamento.
rQuando 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.
SExecuta 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).
tHabilita 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.