Você está na página 1de 18

em 5 passos

INTRODUÇÃO

O que é o debug Como ele pode te ajudar?

O Debug é uma ferramenta de análise de código fonte ABAP O debug ajuda a compreender nos mínimos detalhes o código de um
disponibilizada pela SAP para facilitar a vida de analistas e programa ABAP. Com ele é possível saber por exemplo, qual a lógica
desenvolvedores na compreensão das rotinas do sistema. empregada e quais as regras de negócio estão implementadas nas
rotinas.
Com a ferramenta de Debug da SAP, é possível identificar o fluxo de
processamento dos programas e qual o exato comportamento que ele Além disso, é possível descobrir os valores de tabelas, variáveis e campos
está exercendo no momento da execução em que o problema aconteceu, de tela para entender como está sendo executada a manipulação dos
ou da situação analisada. dados internos dos programas, passagem de parâmetros, etc. Por conta
disso, o debug é uma poderosa ferramenta para análise e simulação de
Quando se utiliza o Debbug no ABAP
cenários em tempo de execução dos programas.
O Debug é muito utilizado quando há um problema na execução do
Um alerta aos profissionais que utilizam ou desejam utilizar o Debug é
código que não está claro para os analistas ou desenvolvedores. Com a
sobre os cuidados necessários ao executá-lo no ambiente de produção.
ferramenta de Debug, as rotinas desenvolvidas são compreendidas mais
Na verdade, é aconselhável que nunca se faça debug em produção,
facilmente e os problemas são encontrados de forma muito mais rápida
porque podem ser efetuadas determinadas consistências ou a
do que uma busca manual.
manipulação de alguma informação que poderá impactar nas áreas de
O Debug tem grande utilidade nas equipes de trabalho pois caso um negócio. Em ambientes de desenvolvimento e qualidade não há essa
problema passe despercebido por um desenvolvedor, o próprio analista dificuldade e preocupação.
pode identificar e corrigir a falha ao rodar a ferramenta.
QUER SE TORNAR UM MESTRE EM DEBUG?

Leia este material e se torne um em apenas 5 passos!


1. O que é um break-point e um watch-point

1.1 O break-point

Um break-point é a marcação de um ponto de parada em uma linha de


código do programa ABAP. Essa marcação pode acontecer implícita ou
explicitamente no programa. Se você sabe mais ou menos o ponto do
programa que você deseja debugar essa funcionalidade é muito útil, agilizará
o processo e te ajudará no restante da sua análise.

Um break-point implícito é uma funcionalidade que você poderá acessar


pelas transações de desenvolvimento (SE37, SE38, SE24 e etc) e poderá
adicionar pontos de parada internos ou externos.
Um break-point implícito interno você poderá adicionar em qualquer
programa e função que seja chamado e executado dentro da sua seção SAP. Já
um break-point implícito externo você poderá adicionar um usuário e quando
determinada linha de código for executada por aquele usuário ele abrirá o
debug para você. Isso é muito útil para trabalhar com cenários de teste que
um usuário chave está executando ou com alguma integração ou job esteja
sendo executada em background sem controle manual de pessoas. Para ativar
o usuário desejado você deverá acessar os seguintes passos, na transação de
desenvolvimento:
Para ativar um processo de debugger explícito você precisa clicar Dessa forma você acaba de adicionar um break-point implícito interno.
na linha desejada do código e posteriormente a isso clicar nos botões Quando você executar esse programa ou essa transação seu debug será
conforme mencionado anteriormente e conforme a sua necessidade acionado.
(interno ou externo). O seu resultado será da seguinte forma: Um debug explícito é um pedaço de código inserido dentro do programa
ABAP que determinará um ponto de debug fixo dentro do seu programa. Esse
ponto de parada poderá ser genérico ou controlado por usuário. Deve-se
evitar esse tipo de ponto de parada, porque se você acabar esquecendo o
código dentro do seu programa poderá afetar o funcionamento dos
desenvolvimentos no ambiente de produção.

O uso do código do break-point você criará um ponto de parada genérico,


qualquer usuário que executar o programa ou transação quando chegar na
linha onde estiver o código será aberto o debug, independentemente das
condições do programa.
Outra maneira de criar um debug explícito é atribuir uma condição de 3.2 O watch-point
break-point para um usuário específico. Se apenas você deseja executar
essa avaliação esse método é mais interessante que o anterior. Isso se da O Watch-point como a tradução literal sugere é um ponto de visualização.
pelo fato de o debugger ser ativado apenas para o usuário determinado Você pode programar o debug para monitorar uma variável específica sem
no código, sem interferência para os demais usuários do sistema. saber o ponto exato do erro. Imagine que você tenha um erro em um
programa, que na sua tela aparece um valor errado por exemplo de um
imposto. Você não sabe onde esse imposto é calculado e alterado mas você
conhece o campo da tela, que por de traz dos panos é uma variável no
programa ABAP. Poderá então, configurar o debug para que quando essa
variável for alterada, ou quando atingir um valor específico o debug seja
acionado, agilizando seu processo de avaliação.

Essa estratégia é muito utilizada para se trabalhar com um grande número


de registros, onde na estrutura de repetição inviabiliza a análise de todos os
registros. Para acioná-lo você deverá entrar no debug e acessar a seguinte
aba.
Quando você estiver nessa tela você poderá criar um novo watch-point Você deverá clicar no botão criar e posteriormente abrirá uma tela que
para uma variável. Neste caso vamos criar um teste para a tabela PT_OBJECTS, você poderá colocar a variável que deseja controlar. Adicione o nome do
quando essa tabela for alterada em algum momento do programa queremos objeto e clique em confirmar, posteriormente a isso você poderá clicar na
que o debug seja acionado. ABAP Desktop 1 e apertar o botão F8. Quando a variável for alterada o
debugger abrirá exatamente no ponto do programa que aconteceu a ação.

Para controlar o valor da variável, você deverá seguir os mesmos passos


anteriores com apenas uma diferença, conforme na imagem abaixo.
Você deverá indicar a variável e abaixo deverá colocar o valor da
variável que você deseja controlar. Neste caso queremos que o debug
seja acionado quando a variável V_SEPARATOR seja igual a X. Basta
clicarmos em confirmar, depois irmos a aba Desktop 1 e apertar o F8 que
o Debug irá parar no momento que essa variável contiver o valor de X.

Outra possibilidade de watch-point é controlar algum tipo de código


ABAP. Por exemplo você tem um programa que tem uma verificação de
autorização de acesso e você não sabe onde essa avaliação está. Você
pode criar um watch-point para o código AUTHORIT-CHECK e durante a
execução do programa encontrar esse código será iniciado o debugger.
Essa ação também é valida para pesquisar funções, exits, mensagens e
Neste caso adicionamos um watch-point para o comando message,
etc.
quando acontecer um comando message o debugger será acionado. Isso
Para acioná-la você terá que clicar no botão F9 durante o debug, você poderá colocar em métodos, funções, forms, exceções e todos os
então abrirá uma tela onde você poderá adicionar as informações casos que você achar necessário para resolver o seu problema.
conforme a imagem abaixo.
Chegou a hora de desbravarmos o debug e as formas de acioná- Esse talvez seja a forma mais convencional de executar o modo de
los e como avaliar as informações contidas nele. Para acionar o debugger, quando você apertar o enter colocando o código /h você
debugger você poderá criar break-points implícitos ou explícitos, ou receberá uma mensagem de confirmação que o debugger está ligado.
então, watch-points. Outra maneira para acionar o debugger é no Caso não seja uma mensagem positiva, talvez você não possua o perfil de
momento desejado da execução do programa você utilizar o acesso ao debugger, neste caso você deverá procurar a equipe de basis
comando /h, ele forçará o inicio do debugger na próxima ação que ou então o superior da área responsável por liberar os acessos.
você executar.

Posteriormente a mensagem qualquer ação que você executar


abrirá uma tela de debuger conforme a imagem abaixo.
Agora vamos entender o que temos de informação nessa tela e que 4.1 Barra de interação
poderão nos auxiliar na avaliação do seu problema. E principalmente as
principais funções encontradas na tela e que farão a diferença.
Na barra de interação teremos as funcionalidades que ajudaram a
executar o debuger, principalmente os quatro primeiro botões que farão
você seguir na avaliação do código. Esses botões poderão ser alterados por
teclas de função (Usadas com maior frequência). Por exemplo a tecla F5 é
uma etapa individual, correspondente ao primeiro botão, nesta função você
percorrerá linha a linha, entrará em todos os performs, funções e métodos
sem distinção.

A função F6 ou o segundo botão, é um debugger individual por linha, no


entanto quando encontrar um perform, função ou método ele não entrará,
executará o código lá dentro e você verá apenas o resultado final e poderá
seguir linha a linha com seu debugger.

A função F7 ou o terceiro botão, é uma função de retorno. Imagine que


você entrou em uma função em determinado momento do seu código, se
você clicar no botão F7 ele voltará para o código anterior que fez a chamada
da função. Todo o código dentro da função será executado e você verá o
resultado final apenas. Isso servirá para performs e classes também.

A função F8 ou o quarto botão, é uma função de finalização do debugger.


Quando você apertar o F8 seu debugger será finalizado e todo o código será
executado e você verá o resultado final da sua transação ou programa.
Outra função importante que auxilia muito no momento do debug é ir 4.2 Informações de ambiente
para instrução desejada. Imagine que durante o debug você passou por um
código e não entendeu o que aconteceu naquela linha de código. Você pode
Nesse espaço temos alguns campos que nos dão informações super
voltar para a linha desejada e reexecutar a linha sem ter que finalizar o debug
importantes. Nos primeiros quatro campos temos as informações do
e reinicializar. Ou então, se você precisa forçar a entrada dentro de um if, você
programa principal, subprograma ou tela, e sua linha. Logo abaixo temos
consegue forçar o ponteiro do debug para aquela linha.
a informação do Form que está sendo executado naquele momento. Logo
Para que isso aconteça você precisa clicar na linha desejada, clicar com o ao lado você possui duas variáveis de ambiente, sy-tabix e su-subrc. O sy-
botão direito e escolher a opção ir para instrução. tabix será responsável por controlar o volume de registros e iterações
executadas no debugger, exemplo, quando você executar um select em
alguma tabela e você tiver 10 registros no retorno, o seu sy-tabix terá o
valor 10. Caso você esteja dentro de um loop, você poderá ver em qual
registro que ele está executando naquele momento. Já o sy-subrc é uma
variável que controla o sucesso ou falha na execução de algum código,
como por exemplo funções, select, read table, modify, loop e etc. Por
exemplo, num select caso na tabela não tenha nenhum registro o seu sy-
subrc será igual a 8, caso não encontre o registro desejado será 4 e caso
encontre o que você pesquisa será 0.

Essas variáveis de ambiente são muito utilizadas durante o


desenvolvimento ABAP e são muito úteis para o entendimento rápido do
que está sendo executado na sua lógica.

Neste momento o ponteiro será direcionado para a linha que você desejar.
Outra forma de atalho que fará a mesma função é você selecionar a linha
desejada e clicar Shift+F12. Você terá o mesmo resultado com as duas formas.
4.3 Abas de avaliação

Para essas abas, explanaremos as principais e mais importantes num


primeiro momento. As abas Desktop 1, Desktop 2, Desktop 3 e Standard
você terá o controle da execução do seu código, poderá avaliar variáveis
locais e globais, e o fluxo de execução do seu programa.

Já na aba Ptos.par/Watchpts você terá como configurar seus pontos de


parada ou seu watch-point para auxiliar você no processo de debuger.

4.4 Código fonte ABAP


E por fim você te acesso a várias outras funcionalidades clicando com o
botão direito nessa área. Algumas dessas funcionalidades também são
Nesta área você verá o código ABAP do programa em execução. Nesta
importantes e auxiliarão no seu debug.
área você poderá acompanhar a execução do seu código com as teclas de
função F5, F6, F7 e F8. Você terá ainda algumas opções como o duplo
clique sobre a variável que desejar. Se você deixar a seta do mouse sobre a
variável desejada você terá informação sobre ela também, conforme a
imagem abaixo.
4.5 Abas de manipulação 4.6 Avaliação de variáveis

Nesta área é possível avaliar o conteúdo das variáveis. Para escolher a


Nessas abas é possível escolher a visualização de variáveis. Nas variável você pode dar duplo clique na variável na área de código fonte ABAP
abas locais, serão listadas todas as variáveis locais disponíveis na ou simplesmente digitar nessa área o nome da variável desejada.
seção de debug que você tem aberta.

Na aba globais você terá todas as variáveis globais disponíveis Para avaliar o valor que elas possuem, você poderá dar duplo clique sobre a
para a sua seção. variável. Nesse momento você será direcionado para uma outra tela que
conterá maiores informações.

Nas abas variáveis 1 você poderá escolher as variáveis que


você deseja avaliar dentro do seu programa de forma livre.
Nessa tela você verá o tipo da sua variável e também o valor dela. Neste Temos situações de tabelas com header line, que tem um comportamento
ponto é possível alterar o valor dela, caso você deseja executar um teste e diferente. Você vai avaliar essa situação da seguinte maneira, com este
simular uma situação diferente. símbolo de tabela.

Neste caso se você clicar sobre o nome da variável XTAUUM, você vai ter
acesso aos valores da work área, conforme visto na imagem abaixo.
Outra forma de alterar o valor da variável poderá ser feito diretamente na
aba de manipulação das variáveis. Só não será permitido alterar parâmetros
de importação e exportação ou constantes.
Se você der duplo clique sobre o símbolo da tabelinha você verá 5 Para facilitar vamos catalogar os atalhos
os dados da tabela, da seguinte forma.

 F5 – Executar todas as linhas


 F6 – Executar as linhas sem entrar em perform, função ou
método
 F7 – Voltar ao nível anterior, pulando código de perform,
função ou método
 F8 – Finalizar Debug
 F9 – Criar Watch-point para comandos ABAP
 SHIFT+F12 – Ir para a instrução desejada
 BREAK-POINT – Ponto de parada Explícito

Você também pode gostar