Dê olá ao FpDebug

Antes da versão 2.2, o Lazarus IDE (apenas Lazarus daqui em diante) utilizava uma ferramenta GNU chamada GDB. A partir da versão 2.2 agora o Lazarus tem um debugger interno que segundo muitas opiniões é melhor e mais rápido, chama-se FpDebug.

Antes de mais nada, a mudança para FpDebug não é obrigatória, ainda é possível o GDB e em algumas oportunidades você ainda verá uma mensagem de advertência pela falta do GDB instalado como essa aqui:

A IDE ainda sente a falta do GDB no sistema, mas pode ignorrar.

Depois do IDE instalado vá em Tools|Options|Debugger|General e verá isso:

‘Adicional search path’ deveria ter o caminho para gdb.exe, mas não é mais necessário

Tradicionalmente no local agora chamado ‘Adicional search path’ deveria ter o caminho para gdb.exe, mas como disse, não é mais o gdb.exe então por ora, podemos deixá-lo em branco. Vamos a algumas opções que considero uteis estarem marcadas:

Show message on stop with Error(Exit-code<>0): O padrão posix para qualquer programa seja ambiente windows ou linux é terminar como ‘exit code’ igual a zero para indicar para o sistema operacional e/ou programas subsequentes que o programa terminou sem erros, qualquer outro código indicará um alerta(warning) ou erro fatal(fatal errror). O Windows geralmente retorna valores menores que zero ou maiores que 255 para referir-se a alertas e maior entre 1…254 para indicar erros, mas na minha experiência de programador analisando programas de outros chego a conclusão que nesse ambiente não existe padrão exceto para comandos de linha de comando(TUI) que geralmente repetem o ‘exit code’ do MSDOS, por exemplo ‘exit code’ igual a ‘2’ para indicar ‘file not found’. Pascaleiros, Javeiros, PHPeiros,… e uma legião de programadores desenvolvem seu próprio padrão de log e debug, mas seria muito bom que mensagens de erros fossem para o stderr/stdout e que todo programa tivesse um ‘exit code’ documentado e seguindo algum padrão, assim teríamos muito mais facilidade de programar e debugar falhas de programas usando o próprio sistema operacional sem precisar de assistência de outros programas ou soluções ‘inhouse’ feita pelos próprios programadores. Por isso mantenho ligada essa opção.

Automatically close the assembler windows, after source not found: Quando estamos debugando linha a linha (step by step) é acionado o código fonte e até mesmo saltos para outros códigos que podem não estar disponíveis e neste caso é acionado uma janela de debugger que mostra o código vigente em assembly. Infelizmente meu conhecimento na linguagem assembler se perdeu com o tempo então embora útil, não tenho o que fazer ao depurá-lo. Por isso mantenho ligada essa opção.

Agora vá em Tools|Options|Debugger|Debugger backend e verá isso:

Se não estiver vendo o fpDebug, é provavel que o gdb ainda seja o padrão da sua IDE, se desejar trocar(e vai querer) siga as orientações:

  • Ir em Tools|Options|Debugger|Debugger Backend e clicar em “Add”:
Você precisa adicionar o debugger desejado.

Uma vez indicado FPDebug Internal DWarf-debugger, não há muito mais configurações, o básico pré-configurado já é suficiente o bastante.

Os breakpoints ainda serão os mesmos da versão anterior:

Os breakpoints ainda serão os mesmos que já existiam

Os breakpoints com que já estava acostumado em versões anteriores ainda serão os mesmos, nada mudou. Bem vindo FpDebug!

Fonte: https://wiki.lazarus.freepascal.org/Debugger_Setup