<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>debug on Abapinho</title><link>https://abapinho.com/tags/debug/</link><description>Recent content in debug on Abapinho</description><generator>Hugo -- gohugo.io</generator><language>pt</language><copyright>&amp;copy;2009-2026 Nuno Godinho</copyright><lastBuildDate>Mon, 11 Apr 2022 09:00:00 +0100</lastBuildDate><atom:link href="https://abapinho.com/tags/debug/index.xml" rel="self" type="application/rss+xml"/><item><title>Debug a trote</title><link>https://abapinho.com/2022/04/debug-step/</link><pubDate>Mon, 11 Apr 2022 09:00:00 +0100</pubDate><guid>https://abapinho.com/2022/04/debug-step/</guid><description>&lt;p>Há várias desculpas para não usar a nova sintaxe funcional do ABAP 7.4. Uma delas é dizer que é impossível fazer &lt;em>debug&lt;/em>.&lt;/p>
&lt;p>Só que não é.&lt;/p></description></item><item><title>Conteúdo de tabela interna numa ALV</title><link>https://abapinho.com/2019/09/alv-tabela-interna/</link><pubDate>Mon, 30 Sep 2019 09:00:54 +0000</pubDate><guid>https://abapinho.com/2019/09/alv-tabela-interna/</guid><description>&lt;p>Não sei há quanto tempo é que isto está disponível mas só agora descobri que é muito fácil ver numa ALV o conteúdo de uma tabela interna durante debug.&lt;/p></description></item><item><title>Variantes de activação da SAAB</title><link>https://abapinho.com/2019/07/saab-variantes/</link><pubDate>Thu, 25 Jul 2019 09:00:00 +0000</pubDate><guid>https://abapinho.com/2019/07/saab-variantes/</guid><description>&lt;p>Em tempos falámos na SAAB e nas vantagens de a utilizar para melhor conseguir analisar e descobrir problemas no nosso código. Nesse artigo não expliquei uma coisa que é realmente importante: variantes de activação.&lt;/p></description></item><item><title>Debug em utilizador sem permissões para debug</title><link>https://abapinho.com/2018/03/debug-sem-permissoes/</link><pubDate>Mon, 05 Mar 2018 09:00:48 +0000</pubDate><guid>https://abapinho.com/2018/03/debug-sem-permissoes/</guid><description>&lt;p>Num sistema bem protegido, os utilizadores não têm permissões para debug. Mas muitas vezes isso complica a vida dos ABAPers que, ao quererem resolver um problema desse utilizador, não podem fazer debug à sua sessão.&lt;/p>
&lt;p>Mas há uma forma legítima, ainda que pouco óbvia, de contornar o problema.&lt;/p></description></item><item><title>Desfazer alterações no ecrã do depurador</title><link>https://abapinho.com/2016/05/debugger-layout-undo/</link><pubDate>Mon, 02 May 2016 09:00:56 +0000</pubDate><guid>https://abapinho.com/2016/05/debugger-layout-undo/</guid><description>&lt;p>Embora uma parte substancial do trabalho de um ABAPador seja depurar código, a maior parte dos ABAPadores que eu conheço investem muito pouco em explorar a ferramenta que o permite, o depurador. Talvez por terem passado anos a aturar um depurador arcaico e limitado. Mas o novo pode fazer muito mais do que lhe costuma ser pedido. E o Abapinho vai tentar ensinar como.&lt;/p>
&lt;p>Hoje ensina-te apenas uma pequena tecla.&lt;/p></description></item><item><title>Dar passos de bebé no debug</title><link>https://abapinho.com/2016/04/debugging-with-baby-steps/</link><pubDate>Mon, 25 Apr 2016 09:00:50 +0000</pubDate><guid>https://abapinho.com/2016/04/debugging-with-baby-steps/</guid><description>&lt;p>Quando fazes &lt;em>debug&lt;/em> usas a tecla F5 para avançar para a próxima instrução (ou entrar para dentro de uma sub-rotina). Mas imagina um IF com várias condições:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#fff;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-ABAP" data-lang="ABAP">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#00f">IF&lt;/span> &lt;span style="color:#000">A&lt;/span> = &lt;span style="color:#3af">1&lt;/span> &lt;span style="color:#00f">AND&lt;/span> &lt;span style="color:#000">B&lt;/span> = &lt;span style="color:#3af">2&lt;/span> &lt;span style="color:#00f">AND&lt;/span> &lt;span style="color:#000">C&lt;/span> = &lt;span style="color:#3af">3&lt;/span>.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#00f">WRITE&lt;/span> &lt;span style="color:#5a2">&amp;#39;Gosto da palavra glauco&amp;#39;&lt;/span>.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#00f">ENDIF&lt;/span>.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;p>Ao fazeres &lt;em>debug&lt;/em> àquele IF com F5 e alguma das expressões for falsa saltas logo para fora do IF e ficas sem saber qual delas falhou.&lt;/p>
&lt;p>Mas o novo &lt;em>debugger&lt;/em> tem uma nova funcionalidade muito catita que te pode ajudar a entender melhor o que aconteceu ali.&lt;/p></description></item><item><title>SAABs ASSERTar à primeira?</title><link>https://abapinho.com/2016/03/saabs-assertar-primeira/</link><pubDate>Mon, 07 Mar 2016 09:00:13 +0000</pubDate><guid>https://abapinho.com/2016/03/saabs-assertar-primeira/</guid><description>&lt;p>&lt;em>Checkpoints&lt;/em> é uma &lt;em>framework&lt;/em> muito poderosa do ABAP que no entanto quase ninguém a usa. Porquê? Provavelmente pela mesma razão que quase ninguém ouve &lt;a href="https://pt.wikipedia.org/wiki/Sun_Ra">Sun Ra&lt;/a> e que quase ninguém sabe que o &lt;a href="https://pt.wikipedia.org/wiki/Frank_Zappa">Frank Zappa&lt;/a> tem 102 álbuns. Porque embora seja bom, é obscuro e pouco comercial. Os &lt;em>checkpoints&lt;/em> são, de facto bons e pouco comerciais. Mas deviam ser mais como o Mozart, que é bom e comercial.&lt;/p></description></item><item><title>STA Ticket System acelera a resolução de incidentes SAP</title><link>https://abapinho.com/2016/02/sta-ticket-system/</link><pubDate>Mon, 29 Feb 2016 09:00:53 +0000</pubDate><guid>https://abapinho.com/2016/02/sta-ticket-system/</guid><description>&lt;p>Hoje temos um convidado, Tamás Holics. Ele é dono da STA Consulting, uma empresa Húngara que criou 2 produtos muito interessantes para SAP. Neste artigo o Tamás apresenta o STA Ticket System.&lt;/p>
&lt;h2 id="o-problema">O Problema&lt;/h2>
&lt;p>Desperdiça-se muito tempo nos processos de teste e manutenção SAP dado que os relatórios de erros produzidos pelos utilizadores serem muitas vezes incompletos ou incorrectos. A resolução do problema reportado normalmente fica pendente até a informação estar toda completa. Ora como em boa parte dos incidentes reportados a equipa de manutenção (analistas, programadores) tem de pedir mais informação sobre o erro, há uma enorme perda de tempo valioso em iterações desnecessárias, tanto de quem reporta incidentes como de quem lhes dá suporte.&lt;/p></description></item><item><title>Breakpoint em mensagem a partir do depurador</title><link>https://abapinho.com/2015/08/breakpoint-em-mensagem-a-partir-do-depurador/</link><pubDate>Mon, 10 Aug 2015 09:00:09 +0000</pubDate><guid>https://abapinho.com/2015/08/breakpoint-em-mensagem-a-partir-do-depurador/</guid><description>&lt;p>Já estás a meio de um debug e queres que a execução pare numa determinada mensagem.&lt;/p>
&lt;p>O que fazer?&lt;/p></description></item><item><title>Debug de um job</title><link>https://abapinho.com/2015/06/debug-de-um-job/</link><pubDate>Mon, 15 Jun 2015 09:00:40 +0000</pubDate><guid>https://abapinho.com/2015/06/debug-de-um-job/</guid><description>&lt;p>Para fazeres &lt;em>debug&lt;/em> a um programa que faça parte de um &lt;em>job&lt;/em> faz o seguinte:&lt;/p></description></item><item><title>Fazer debug a um ciclo infinito já em execução</title><link>https://abapinho.com/2015/03/fazer-debug-a-um-ciclo-infinito-ja-em-execucao/</link><pubDate>Mon, 02 Mar 2015 09:00:22 +0000</pubDate><guid>https://abapinho.com/2015/03/fazer-debug-a-um-ciclo-infinito-ja-em-execucao/</guid><description>&lt;p>Imagina que tens um programa a executar um ciclo infinito ou, pelo menos, um ciclo com 70x7 iterações. Nunca mais acaba e tu queres saber o que lá se passa.&lt;/p>
&lt;p>No passado tinhas de ir à SM50, seleccionar o processo e escolher no menu &amp;ldquo;Administração | Programa | Depuração&amp;rdquo;.&lt;/p>
&lt;p>Mas agora há uma forma muito mais simples.&lt;/p></description></item><item><title>Request Based Debugging</title><link>https://abapinho.com/2014/05/request-based-debugging/</link><pubDate>Mon, 12 May 2014 09:00:10 +0000</pubDate><guid>https://abapinho.com/2014/05/request-based-debugging/</guid><description>&lt;p>Se em &lt;em>debug&lt;/em> consultares a variável de sistema UNAME dentro de uma chamada RFC podes achar estranho encontrar um utilizador que não o teu. O que acontece é que o sistema adopta um utilizador específico a chamadas remotas e uma nova sessão é iniciada. Uma nova sessão implica um novo contexto de execução e, consequentemente, todos os nossos &lt;em>breakpoints&lt;/em> , já estrategicamente colocados, não serão reconhecidos.&lt;/p>
&lt;p>Este problema pode dificultar um &lt;em>debug&lt;/em> simples obrigando-nos a percorrer o código à procura DAQUELA chamada remota ÀQUELE sistema em particular.&lt;/p>
&lt;p>A SAP tem a solução.&lt;/p></description></item><item><title>Faz debug a um job</title><link>https://abapinho.com/2014/04/faz-debug-a-um-job/</link><pubDate>Mon, 21 Apr 2014 09:00:23 +0000</pubDate><guid>https://abapinho.com/2014/04/faz-debug-a-um-job/</guid><description>Toma lá uma forma simples de começares a fazer debug a um job:
Vai à transacção SM37;
Clica no job a que queres fazer debug;
escreve JDBG na linha de comando (sem /) e carrega em ENTER;
e&amp;hellip; zás! estás a fazer debug ao job.
Obrigado Ricardo Monteiro pela dica. E obrigado Ingolf pela foto.
O Abapinho saúda-vos.</description></item><item><title>Atalho para viajar no tempo</title><link>https://abapinho.com/2014/04/atalho-para-viajar-no-tempo/</link><pubDate>Mon, 07 Apr 2014 09:00:35 +0000</pubDate><guid>https://abapinho.com/2014/04/atalho-para-viajar-no-tempo/</guid><description>Há uns meses atrás mostrei como transformar o debugger numa máquina do tempo.
Hoje a dica é singela mas escorreita: há um atalho de teclado para tornar ainda mais simples este viajar enviesado:
shift + F12
Pões o cursor na linha para onde queres viajar e depois&amp;hellip; shift+F12.
Obrigado Maxsuel Maia pela dica.
O Abapinho saúda-vos.</description></item><item><title>Fecha a janela encalhada</title><link>https://abapinho.com/2014/03/fecha-a-janela-encalhada/</link><pubDate>Mon, 03 Mar 2014 17:30:56 +0000</pubDate><guid>https://abapinho.com/2014/03/fecha-a-janela-encalhada/</guid><description>&lt;p>Quantas vezes te aconteceu ficar com uma janela &amp;ldquo;pendurada&amp;rdquo; quando terminas um debug?&lt;/p></description></item><item><title>Pára lá mas não já</title><link>https://abapinho.com/2014/02/para-la-mas-nao-ja/</link><pubDate>Mon, 03 Feb 2014 09:00:56 +0000</pubDate><guid>https://abapinho.com/2014/02/para-la-mas-nao-ja/</guid><description>&lt;p>Estás a fazer um LOOP AT a uma tabela com 1000 linhas e sabes que a linha que te interessa é a 853. Até há pouco tempo tinhas duas hipóteses: ou carregavas 852 vezes na tecla F8, arriscando-te a carregar 853 e teres de começar tudo de novo ou então criavas um &lt;em>watchpoint&lt;/em> com a condição SY-TABIX = 852 ou lá perto e rezavas para que funcionasse.&lt;/p>
&lt;p>Agora tens uma terceira alternativa.&lt;/p></description></item><item><title>Comando /HS</title><link>https://abapinho.com/2013/07/comando-hs/</link><pubDate>Mon, 22 Jul 2013 09:00:36 +0000</pubDate><guid>https://abapinho.com/2013/07/comando-hs/</guid><description>&lt;p>Todo os funcional, até o mais funcional dos funcionais, sabe que para começar a depurar (vá, a fazer &lt;em>debug&lt;/em> a) um programa ABAP se usa o comando /H. Mas raro será o programador, mesmo o mais programador dos programadores, que saberá para que serve o comando /HS.&lt;/p></description></item><item><title>Salta a parede</title><link>https://abapinho.com/2012/08/salta-a-parede/</link><pubDate>Mon, 06 Aug 2012 09:00:31 +0000</pubDate><guid>https://abapinho.com/2012/08/salta-a-parede/</guid><description>&lt;p>Baixa a música.
Fecha a porta.
Olha à volta.
Está alguém a olhar para ti?
Não estás a ser observado?
Nem câmaras de vigilância?
Então, podemos continuar.&lt;/p></description></item><item><title>Ó Tempo Volta Para Trás</title><link>https://abapinho.com/2012/04/o-tempo-volta-para-tras/</link><pubDate>Mon, 02 Apr 2012 10:00:08 +0000</pubDate><guid>https://abapinho.com/2012/04/o-tempo-volta-para-tras/</guid><description>&lt;p>&amp;ldquo;Ó tempo volta para trás
Dá-me tudo o que eu perdi
Tem pena e dá-me a vida
A vida que eu já vivi
Ò tempo volta p&amp;rsquo;ra trás
Mata as minhas esperanças vãs
Vê que até o próprio sol
Volta todas as manhãs&amp;rdquo; - António Mourão&lt;/p>
&lt;p>Ó &lt;a href="https://www.youtube.com/watch?v=LOtAfLvhSZo">Tony&lt;/a>, é para já. Vou mostrar-te como podes voltar atrás no tempo.&lt;/p></description></item><item><title>Cria variantes de teste em funções a partir do debugger</title><link>https://abapinho.com/2012/02/variantes-de-teste-em-debug/</link><pubDate>Mon, 20 Feb 2012 10:00:42 +0000</pubDate><guid>https://abapinho.com/2012/02/variantes-de-teste-em-debug/</guid><description>&lt;p>Imagina que estás a fazer debug de uma transacção e entras numa função e encontras algo interessante. Tão interessante que tens de lhe fazer debug várias vezes. A via convencional é tornar a iniciar o debug da transacção desde o início. Que seca.&lt;/p>
&lt;p>Mas há uma via mais directa. Quando estás a fazer debug de uma função podes, directamente a partir do debugger, criar dados de teste para essa função com os valores com que a função tiver sido chamada nessa instância. É assim:&lt;/p></description></item><item><title>Debug em janelas de diálogo modais</title><link>https://abapinho.com/2012/01/debug-em-popups/</link><pubDate>Mon, 09 Jan 2012 10:00:29 +0000</pubDate><guid>https://abapinho.com/2012/01/debug-em-popups/</guid><description>&lt;p>Há determinados momentos em que não é possível fazer /H para iniciar o &lt;em>debugger&lt;/em>. O caso mais comum é durante uma janela de diálogo modal (aquilo que os estrangeiros chamam de &lt;em>popup&lt;/em> ). Mas há uma forma simples, ainda que rocambolesca, para o conseguires:&lt;/p></description></item><item><title>Análises parciais na SE30</title><link>https://abapinho.com/2011/11/se30-parciais/</link><pubDate>Mon, 28 Nov 2011 11:37:25 +0000</pubDate><guid>https://abapinho.com/2011/11/se30-parciais/</guid><description>Claro que já conheces a transacção SE30 (Análise de tempo de execução) e claro que a usas amiúde para analisar programas standard e descobrir nele tabelas, funções, BADIs e quejandos.
Ora se fores como eu, manténs uma relação de amor-ódio com esta transacção: se por um lado a amas por graças a ela consegues ver as entranhas de um programa sem ter de fazer debug, por outro lado odeia-la porque normalmente a lista de entranhas costuma ter milhares de linhas e tornar-se ingerível.</description></item><item><title>SAT - A nova ferramenta de análise de execução</title><link>https://abapinho.com/2011/02/sat/</link><pubDate>Wed, 16 Feb 2011 14:31:40 +0000</pubDate><guid>https://abapinho.com/2011/02/sat/</guid><description>Desde pequenino que uso a transacção SE30 para duas coisas diferentes:
Analisar um programa que desconheço (normalmente standard) para saber que funções usa, que BADIs disponibiliza, etc;
Analisar um programa meu em busca de problemas de performance.
A verdade, nua e crua, é que a transacção SE30 é uma porcaria pegada. Extremamente limitada e inflexível, não dá jeito nenhum para qualquer análise mais complexa.
Aparentemente os senhores da SAP concordam e resolveram substitui-la pela fantástica nova ferramenta SAT - ABAP Runtime Analysis , em tudo mais sofisticada.</description></item><item><title>Depuração telepática</title><link>https://abapinho.com/2010/11/depuracaotelepatica/</link><pubDate>Fri, 26 Nov 2010 10:55:58 +0000</pubDate><guid>https://abapinho.com/2010/11/depuracaotelepatica/</guid><description>Imagine o seguinte cenário: um utilizador (ou utilizadora) está sentado no escritório dele, a correr uma transacção ou não sei o quê. Tem um problema e chama um programador (ou programadora) para o (ou a) ajudar a entender o que se passa. Normalmente o programador (ou programadora) teria de se deslocar lá, à sala do senhor utilizador (ou senhora utilizadora) e das duas uma: fazer debug no computador dele (ou dela) ou aprender como recriar o problema e depois fazer debug no seu computador.</description></item><item><title>Procurar uma BADI no palheiro</title><link>https://abapinho.com/2010/06/procurar-uma-badi-no-palheiro/</link><pubDate>Mon, 14 Jun 2010 10:46:04 +0000</pubDate><guid>https://abapinho.com/2010/06/procurar-uma-badi-no-palheiro/</guid><description>&lt;p>O SAP é um enorme palheiro. E os ABAPers são pessoas que trepam por esse palheiro acima e nele vasculham e escarafuncham em busca de agulhas de todo o género. Às vezes, desesperados, deitam-se a descansar e vêm uma quantidade enorme de bicharocos que vivem no palheiro fazer-lhes comichão. Para evitar que isso aconteça, o Artur Moreira propõe-nos uma série de diferentes técnicas para procurar BADIs neste grande palheiro que é o SAP.&lt;/p></description></item></channel></rss>