Depuração de código personalizado de opcode de política Oracle BRM via GDB

Oracle BRM - Facturação e Gestão de Receitas

Partilhar

05/09/2019

Índice

Se quisermos produzir um produto de alta qualidade da nossa Oracle BRM Para desenvolver software, temos de cumprir alguns requisitos relativamente ao nosso processo de desenvolvimento. É especialmente importante incorporar boas técnicas de teste e depuração no nosso processo de desenvolvimento.
Os testes são um processo de detecção de falhas ou erros num produto de software que é efectuado manualmente por um testador ou pode ser automatizado.
Depuração é o processo de encontrar e resolver defeitos ou problemas num programa de computador que impedem o funcionamento correcto do software ou de um sistema. Basicamente, é um processo de correcção dos erros encontrados na fase de teste. O programador ou programador é responsável pela depuração e esta não pode ser automatizada.

Depurar código personalizado de opcodes de política Oracle BRM

Ao personalizar os códigos de operação de política em Oracle BRM é frequentemente necessário depurar algum código para encontrar potenciais erros ou analisar o comportamento do código. Algumas análises básicas podem ser feitas registando algumas mensagens de depuração e analisando os registos, mas um método muito mais avançado e poderoso é utilizar uma ferramenta separada - o depurador. Neste artigo, veremos como podemos usar o depurador de código aberto GDB para depurar um processo Oracle BRM cm que executa também algum código personalizado (veja a figura abaixo).

Depuração do CM Oracle BRM com GDB
Visão geral esquemática da depuração do CM Oracle BRM usando GDB

GDB é um depurador de código aberto que fornece muitas ferramentas avançadas e poderosas para analisar e depurar o nosso código. Algumas das funcionalidades básicas do GDB são os pontos de interrupção (condicionais/não condicionais), watches, back traces e execução incremental de código. Claro que também pode ver e modificar valores de variáveis e chamar várias funções. Agora vamos ver como usamos o GDB com o processo cm na prática.

A depuração na prática

Primeiro, temos de obter um PID do nosso processo CM:

ps x

Encontre o PID do processo CM e utilize-o para se ligar a esse processo com a GDB:

gdb cm

Agora o shell GDB é aberto, onde podemos executar vários comandos que o GDB suporta. Cada nova conexão que é estabelecida com o CM causa a geração de um novo processo CM filho do CM pai. Queremos que o GDB também rastreie esses processos filhos. Execute o seguinte comando no shell do GDB:

(gdb) definir follow-fork-mode child

Dependendo das suas necessidades, pode também querer explorar os comandos set detach-on-fork e attach. Agora vamos definir um ponto de interrupção para uma implementação de código de operação de política, como no exemplo a seguir:

(gdb) break fm_act_pol_post_reauthorize.c:192

Quando desencadearmos agora a execução do código de operação da política, esta será interrompida por um ponto de interrupção (ou mesmo antes disso, notificar-nos-á de que foi criado um novo filho). Podemos então seguir o fluxo de código passo a passo utilizando os comandos next (abreviatura n) ou step. Se estivermos interessados num valor de uma variável, podemos imprimi-lo utilizando:

imprimir

Exemplo de depuração do processo Oracle BRM CM
Exemplo de utilização da GDB para depurar o processo CM Oracle BRM

Muitas outras características mais avançadas e poderosas estão também à nossa disposição e são descritas em pormenor na documentação da GDB e na ajuda integrada. Está convidado a pesquisá-las para ver como o podem ajudar.

Imagem de Aleš
Aleš
Ales Pristovnik é o CEO da Tridens Technology, uma empresa eslovena especializada no desenvolvimento de soluções de software para a indústria automóvel. Ele tem uma longa história na indústria de TI, tendo trabalhado para várias grandes empresas no passado. Ele tem uma paixão pela tecnologia e inovação, e o seu foco actual é o desenvolvimento de soluções que irão melhorar a segurança e eficiência da indústria automóvel. Ele tem um forte background em liderança e gestão, e está empenhado em impulsionar a sua empresa no sector da tecnologia em constante evolução.

Obter notícias na sua caixa de correio!


    0 0 votos
    Article Rating
    Subscreva
    Notificação de
    convidado

    0 Comentários
    Mais antigo
    Novidades Mais Votados
    Feedbacks em linha
    Ver todos os comentários