Depurando Hooks
Como posso depurar um Hook?
Seção intitulada “Como posso depurar um Hook?”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.
APIs de Rastreamento
Seção intitulada “APIs de Rastreamento”As seguintes funções trace estão disponíveis na API de Hooks
| API de Hook | O que faz |
|---|---|
| trace | Imprime uma mensagem utf-8, seguida por um buffer especificado pelo usuário (opcionalmente como hex.) |
| trace_num | Imprime uma mensagem utf-8, seguida por um inteiro. |
| trace_float | Imprime uma mensagem utf-8, seguida por um número de ponto flutuante XFL. |
Exemplo
Seção intitulada “Exemplo”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 10O acima aparece no log como uma única linha, mas foi dividido aqui para melhor visibilidade.
Formato do Log
Seção intitulada “Formato do Log”Uma análise do formato de log aparece na tabela abaixo
| Parte | Descrição | # |
|---|---|---|
| 2021-Apr-13 13:59:11.083700726 UTC View:TRC | Prefixo do xahaud para a linha de log | 1 |
| HookTrace | Este é 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 |
| [rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh | A primeira conta entre colchetes é a Conta Hook. | 3 |
| -rE3SfnjwfzZFL3JK9cLVfJuy8Ar1XnCqPw]: | A segunda conta entre colchetes é a Conta de Origem. | 4 |
| A number | Esta é a mensagem que o Hook foi instruído a entregar antes da carga de rastreamento | 5 |
| 10 | Esta é a carga de rastreamento | 6 |