<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TechTips &#187; Depuração</title>
	<atom:link href="http://www.techtips.com.br/category/programacao/delphi/depuracao/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techtips.com.br</link>
	<description>Dicas de Tecnologia</description>
	<lastBuildDate>Wed, 24 Jun 2009 19:06:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Conhecendo o Debugger do Delphi</title>
		<link>http://www.techtips.com.br/programacao/delphi/depuracao/conhecendo-o-debugger-do-delphi/</link>
		<comments>http://www.techtips.com.br/programacao/delphi/depuracao/conhecendo-o-debugger-do-delphi/#comments</comments>
		<pubDate>Thu, 10 May 2007 21:42:58 +0000</pubDate>
		<dc:creator>Leonel Togniolli</dc:creator>
				<category><![CDATA[Depuração]]></category>

		<guid isPermaLink="false">http://www.techtips.com.br/programacao/delphi/depuracao/conhecendo-o-debugger-do-delphi/</guid>
		<description><![CDATA[Se você usa o Delphi 7 ou versão anterior até tem uma desculpa para não conhecer todos os recursos do Debugger do Delphi &#8211; as janelas com as informações interessantes ficavam escondidas, por padrão, e era necessário ir atrás delas para exibí-las e utilizá-las. Nas versões mais recentes, até o novo Delphi 2007,&#160;ele vem com [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>Se você usa o Delphi 7 ou versão anterior até tem uma desculpa para não conhecer todos os recursos do Debugger do Delphi &#8211; as janelas com as informações interessantes ficavam escondidas, por padrão, e era necessário ir atrás delas para exibí-las e utilizá-las. Nas versões mais recentes, até o novo Delphi 2007,&nbsp;ele vem com um &#8220;Debug Desktop&#8221; pré-definido com a maioria das janelas já configuradas como visíveis, e assim as informações ficaram bem mais acessíveis. Apesar disso, acredito que ainda&nbsp;existe quem&nbsp;as ignora e continua sem conhecer esses recursos interessantes.</p>
<p>Como pretendo escrever mais artigos sobre recursos de debugger, mostrando dicas e truques e citando as suas janelas, não posso deixar que&nbsp;você não conheça cada uma delas. Vamos dar uma passada rápida por elas.</p>
<ul>
<li>Breakpoints &#8211; Ctrl-Alt-B</li>
</ul>
<p><img height="134" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/breakpointlist3.png" width="518" border="0"> </p>
<p>A janela de Breakpoints permite gerenciar todos os breakpoints de uma forma rápida. É possível adicionar novos breakpoints, incluindo breakpoints de dados, apagar/desabilitar todos ou seletivamente.</p>
<ul>
<li>Call Stack &#8211; Ctrl-Alt-S</li>
</ul>
<p><img height="141" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/CallStack3.png" width="288" border="0"> </p>
<p>Call Stack mostra a pilha de chamadas, que é a sequência das rotinas que foram chamadas para que a execução chegasse naquele ponto que o programa se encontra. Bastante útil para saber o contexto que você está examinando, para saber porquê a execução chegou até ali. Particularmente útil quando a execução do programa passa por um ponto que não deveria e você não sabe bem o motivo.</p>
<ul>
<li>Watches &#8211; Ctrl-Alt-W</li>
</ul>
<p><img height="89" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/WatchList3.png" width="239" border="0"> </p>
<p>Watches permitem monitorar o valor de variáveis e o resultado de expressões durante a depuração. Bom para acompanhar o conteúdo de alguma variável que não deveria estar sendo alterada. Não se esqueça do atalho para criar um novo watch &#8211; Ctrl-F5.</p>
<ul>
<li>Local Variables &#8211; Ctrl-Alt-L</li>
</ul>
<p><img height="142" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/LocalVariables3.png" width="281" border="0"> </p>
<p>Uma espécie de watches automáticos, a janela de Local Variables mostra o conteúdo das variáveis locais à um método. Não deixe de usá-lo quando estiver passando por algum método que faz cálculos &#8211; é essencial ter todos os valores à vista.</p>
<ul>
<li>Threads &#8211; Ctrl-Alt-T</li>
</ul>
<p><img height="93" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/ThreadStatus3.png" width="413" border="0"> </p>
<p>Mostra todas as threads que pertencem ao seu processo, e seu status. Permite alterar a thread corrente para você depurá-la. </p>
<ul>
<li>Event Log &#8211; Ctrl-Alt-V</li>
</ul>
<p><img height="109" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/EventLog3.png" width="521" border="0"> </p>
<p>O Event Log é um painel importante para vários truques de depuração. É nele que vão várias mensagens do debugger, como o inicio de threads, exceções, paradas em breakpoints. </p>
<ul>
<li>Modules &#8211; Ctrl-Alt-M</li>
</ul>
<p><img height="296" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/Modules3.png" width="548" border="0"> </p>
<p>A janela de Modules mostra todos os módulos carregados pelo seu executável, inclusive o caminho completo de cada um. Contém informação importante para aplicativos que são modularizados em DLLs e/ou BPLs, ajudando a descobrir qual arquivo está realmente sendo carregado, evitando o tempo perdido quando você compila um módulo mas o seu aplicativo carrega um cópia dele em uma pasta diferente.</p>
<p>Também diz quais dos módulos possuem símbolos para o debugger utilizar, e, para cada módulo, mostra uma lista de funções exportadas por ele, levando até a sua implementação.</p>
<ul>
<li>CPU/FPU Window &#8211; Ctrl-Alt-C, Ctrl-Alt-F </li>
</ul>
<p><img height="340" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/Cpu3.png" width="459" border="0"> </p>
<p>As janelas de CPU e FPU mostram o conteúdo da memória, dos registradores do processador, e o disassembly do código que está sendo executado no momento. É relativamente assustadora para quem não conhece assembly, mas de qualquer forma, o acesso de baixo nível que é possível ter permite a investigação dos piores problemas, e alguns truques interessantes.</p>
<p>Todas as janelas acimas, além de disponíveis pelos atalhos que listei, também estão em View/Debug Windows. </p>
<p>Outras duas janelas importantes que não&nbsp;estão acessíveis por este menu são:</p>
<ul>
<li>Evaluate/Modify &#8211; Ctrl-F7</li>
</ul>
<p><img height="240" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/EvaluateModify3.png" width="307" border="0"> </p>
<p>Evaluate/Modify é um recurso&nbsp;que eu espero que&nbsp;você já tenha usado pelo menos alguma vez. Ele mostra o conteúdo de uma variável e permite a sua alteração. Também calcula o resultado de expressões e funções. Essencial para alguns truques que vou mostrar no futuro.</p>
<ul>
<li>Debug Inspector</li>
</ul>
<p><img height="302" src="http://www.techtips.com.br/wp-content/uploads/ConhecendooDebuggerdoDelphi_E8E0/DebugInspector3.png" width="230" border="0"> </p>
<p>Uma janela que mostra o conteúdo de uma objeto ou outra estrutura em tempo de execução da mesma forma que o Object Inspector mostra as propriedades de componentes em tempo de projeto, é um recurso bastante útil&nbsp;e geralmente desconhecido e não utilizado.</p>
<p>Para ativá-lo existem algumas formas diferentes. Nas versões mais antigas, Ctrl-Clique em um identificador em tempo de projeto levava até a sua declaração, e durante a depuração abria o Debug Inspector. Nas versões mais recentes do Delphi o Ctrl-Clique foi incrementado para levar até a declaração durante a depuração também, então o atalho para o Debug Inspector mudou para Ctrl-Shift-Clique. Também é possível abrir o Debug Inspector dando um duplo clique em um objeto na janela de Local Variables.&nbsp;Tanto o Evaluate/Modify quanto o Debug Inspector&nbsp;também são acessíveis pelo menu de contexto do editor.</p>
<p>Isso foi um resumo rápido da interface do debugger do Delphi, que vai servir como base para futura dicas aqui. </p>
<p><center>&copy; <a href="http://www.techtips.com.br">TechTips</a></center></p>]]></content:encoded>
			<wfw:commentRss>http://www.techtips.com.br/programacao/delphi/depuracao/conhecendo-o-debugger-do-delphi/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.435 seconds -->

