Pular para o conteúdo

Depurando Hooks

A API de Hooks fornece um conjunto de funções no namespace trace que gravam saída no arquivo de log do xrpld quando o xrpld está configurado com o nível de log trace. Essas funções, em geral, permitem que você veja o valor de variáveis, buffers e rastreie a execução e o estado de um Hook em tempo de execução.

As seguintes funções trace estão disponíveis na API de Hooks

API de HookO que faz
traceImprime uma mensagem utf-8, seguida por um buffer especificado pelo usuário (opcionalmente como hex.)
trace_numImprime uma mensagem utf-8, seguida por um inteiro.
trace_floatImprime uma mensagem utf-8, seguida por um número de ponto flutuante XFL.

O código a seguir imprimirá uma única linha de rastreamento e então aceitará a Transação de Origem.

#include "../hookapi.h"
int64_t hook(int64_t reserved)
{
trace_num(SBUF("A number"), 10);
accept(0,0,0);
return 0;
}

Um exemplo da linha de log produzida pelo xahaud quando um pagamento é enviado para fora ou para dentro da Conta Hook:

2021-Apr-13 13:59:11.083700726 UTC View:TRC
HookTrace[rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh-rE3SfnjwfzZFL3JK9cLVfJuy8Ar1XnCqPw]:
A number 10

O acima aparece no log como uma única linha, mas foi dividido aqui para melhor visibilidade.

Uma análise do formato de log aparece na tabela abaixo

ParteDescrição#
2021-Apr-13 13:59:11.083700726 UTC View:TRCPrefixo do xahaud para a linha de log1
HookTraceEste é um rastreamento iniciado pelo próprio Hook, não alguma outra informação sobre o Hook. Outras informações estão disponíveis nas tags HookError, HookEmit e HookInfo.2
[rHb9CJAWyB4rj91VRWn96DkukG4bwdtyThA primeira conta entre colchetes é a Conta Hook.3
-rE3SfnjwfzZFL3JK9cLVfJuy8Ar1XnCqPw]:A segunda conta entre colchetes é a Conta de Origem.4
A numberEsta é a mensagem que o Hook foi instruído a entregar antes da carga de rastreamento5
10Esta é a carga de rastreamento6