Você está na página 1de 5

Conhecendo o Debugger do Delphi

Escrito em 10 de maio de 2007 em Depurao por Leonel Togniolli Se voc usa o Delphi 7 ou verso anterior at tem uma desculpa para no conhecer todos os recursos do Debugger do Delphi as janelas com as informaes interessantes ficavam escondidas, por padro, e era necessrio ir atrs delas para exib-las e utilizlas. Nas verses mais recentes, at o novo Delphi 2007, ele vem com um Debug Desktop pr-definido com a maioria das janelas j configuradas como visveis, e assim as informaes ficaram bem mais acessveis. Apesar disso, acredito que ainda existe quem as ignora e continua sem conhecer esses recursos interessantes. Como pretendo escrever mais artigos sobre recursos de debugger, mostrando dicas e truques e citando as suas janelas, no posso deixar que voc no conhea cada uma delas. Vamos dar uma passada rpida por elas.

Breakpoints Ctrl-Alt-B

A janela de Breakpoints permite gerenciar todos os breakpoints de uma forma rpida. possvel adicionar novos breakpoints, incluindo breakpoints de dados, apagar/desabilitar todos ou seletivamente.

Call Stack Ctrl-Alt-S

Call Stack mostra a pilha de chamadas, que a sequncia das rotinas que foram chamadas para que a execuo chegasse naquele ponto que o programa se encontra. Bastante til para saber o contexto que voc est examinando, para saber porqu a execuo chegou at ali. Particularmente til quando a execuo do programa passa por um ponto que no deveria e voc no sabe bem o motivo.

Watches Ctrl-Alt-W

Watches permitem monitorar o valor de variveis e o resultado de expresses durante a depurao. Bom para acompanhar o contedo de alguma varivel que no deveria estar sendo alterada. No se esquea do atalho para criar um novo watch Ctrl-F5.

Local Variables Ctrl-Alt-L

Uma espcie de watches automticos, a janela de Local Variables mostra o contedo das variveis locais um mtodo. No deixe de us-lo quando estiver passando por algum mtodo que faz clculos essencial ter todos os valores vista.

Threads Ctrl-Alt-T

Mostra todas as threads que pertencem ao seu processo, e seu status. Permite alterar a thread corrente para voc depur-la.

Event Log Ctrl-Alt-V

O Event Log um painel importante para vrios truques de depurao. nele que vo vrias mensagens do debugger, como o inicio de threads, excees, paradas em breakpoints.

Modules Ctrl-Alt-M

A janela de Modules mostra todos os mdulos carregados pelo seu executvel, inclusive o caminho completo de cada um. Contm informao importante para aplicativos que so modularizados em DLLs e/ou BPLs, ajudando a descobrir qual arquivo est realmente sendo carregado, evitando o tempo perdido quando voc compila um mdulo mas o seu aplicativo carrega um cpia dele em uma pasta diferente. Tambm diz quais dos mdulos possuem smbolos para o debugger utilizar, e, para cada mdulo, mostra uma lista de funes exportadas por ele, levando at a sua implementao.

CPU/FPU Window Ctrl-Alt-C, Ctrl-Alt-F

As janelas de CPU e FPU mostram o contedo da memria, dos registradores do processador, e o disassembly do cdigo que est sendo executado no momento.

relativamente assustadora para quem no conhece assembly, mas de qualquer forma, o acesso de baixo nvel que possvel ter permite a investigao dos piores problemas, e alguns truques interessantes. Todas as janelas acimas, alm de disponveis pelos atalhos que listei, tambm esto em View/Debug Windows. Outras duas janelas importantes que no esto acessveis por este menu so:

Evaluate/Modify Ctrl-F7

Evaluate/Modify um recurso que eu espero que voc j tenha usado pelo menos alguma vez. Ele mostra o contedo de uma varivel e permite a sua alterao. Tambm calcula o resultado de expresses e funes. Essencial para alguns truques que vou mostrar no futuro.

Debug Inspector

Uma janela que mostra o contedo de uma objeto ou outra estrutura em tempo de execuo da mesma forma que o Object Inspector mostra as propriedades de componentes em tempo de projeto, um recurso bastante til e geralmente desconhecido e no utilizado. Para ativ-lo existem algumas formas diferentes. Nas verses mais antigas, Ctrl-Clique em um identificador em tempo de projeto levava at a sua declarao, e durante a depurao abria o Debug Inspector. Nas verses mais recentes do Delphi o Ctrl-Clique foi incrementado para levar at a declarao durante a depurao tambm, ento o atalho para o Debug Inspector mudou para Ctrl-Shift-Clique. Tambm possvel abrir o Debug Inspector dando um duplo clique em um objeto na janela de Local Variables. Tanto o Evaluate/Modify quanto o Debug Inspector tambm so acessveis pelo menu de contexto do editor. Isso foi um resumo rpido da interface do debugger do Delphi, que vai servir como base para futura dicas aqui.