JanelasMacSoftwareConfiguraçõesSegurançaProdutividadeLinuxAndroidDesempenhoConfiguraçãoApple Tudo

Como depurar código Python com PDB

Editado 3 meses atrás por ExtremeHow Equipe Editorial

PythonDepuraçãoPDBSolução de problemasLinha de comandoJanelasMacLinuxProgramaçãoDesenvolvimento

Como depurar código Python com PDB

Tradução atualizada 3 meses atrás

Python é uma linguagem de programação versátil e amplamente utilizada, elogiada por sua legibilidade e simplicidade. No entanto, como qualquer outra linguagem de programação, o código Python pode conter bugs. Depurar é uma habilidade essencial para qualquer desenvolvedor, pois permite identificar e corrigir problemas em seu código. Em Python, uma das ferramentas mais populares para depuração é o PDB, o Depurador de Python. Este artigo explicará em detalhes como depurar código Python usando o PDB.

Entendendo o PDB (Depurador Python)

PDB significa Depurador Python, é uma ferramenta de depuração embutida que vem com o Python. Ela permite que os desenvolvedores examinem seu código, inspecionem variáveis e identifiquem onde as coisas estão dando errado. O PDB é uma ferramenta de linha de comando que pode parecer intimidadora no início, mas uma vez que você se acostuma, torna-se incrivelmente poderosa e útil.

Comandos básicos no PDB

Antes de começar a depurar, é importante entender alguns comandos básicos no PDB. Aqui estão alguns comandos importantes que você usará:

Iniciando o PDB

Para começar a usar o PDB, você pode invocá-lo a partir da linha de comando enquanto executa seu script Python. Digamos que você tenha um script chamado example.py. Você pode iniciar o depurador assim:

python -m pdb example.py

Este comando executa seu script sob o PDB, e você poderá começar a depurar a partir da primeira linha do seu script.

Definindo um ponto de interrupção

Os pontos de interrupção são muito importantes na depuração com PDB. Eles permitem que você pare a execução do seu código em um ponto específico. Uma vez que o programa pare, você pode inspecionar o ambiente, variáveis e fluxo de execução.

Você pode definir um ponto de interrupção em um número de linha específico da seguinte maneira:

b 10

Aqui, o depurador irá parar a execução na linha 10 do seu script. Você também pode definir um ponto de interrupção na função:

b my_function

Este comando interromperá a execução sempre que a my_function for chamada.

Avançando através do código

Avançar pelo código é uma tarefa comum na depuração. Isso permite que você execute o programa linha por linha e observe o fluxo de execução. Você pode usar o comando 'n' para mover para a próxima linha em seu código:

n

Se estiver interessado em entrar na chamada de função, use o comando 's':

s

A diferença entre 'n' e 's' é importante: enquanto 'n' move para a próxima linha no escopo atual, 's' entra em qualquer função chamada na posição atual.

Inspecionando variáveis

Inspecionar variáveis é outra parte importante da depuração. Você pode verificar o valor das variáveis com o comando 'p':

p variable_name

Para expressões mais complexas, basta digitar esta expressão:

p my_variable + 10

Isto irá avaliar my_variable + 10 e imprimir o resultado.

Execução contínua

Depois de terminar de inspecionar ou avançar pelo seu código, você pode querer continuar a execução normal. Para fazer isso, use o comando 'c':

c

Isso continuará a execução até que outro ponto de interrupção seja atingido ou o programa termine.

Exemplo de uso do PDB

Vamos considerar um exemplo simples de como o PDB pode ser usado. Digamos que temos o seguinte script, que possui um bug:

def add_numbers(a, b): return a + b def main(): result = add_numbers(3, "4") print("The result is:", result) if __name__ == "__main__": main()

Neste script, há um bug na função main. A função add_numbers é chamada com uma string em vez de um inteiro, o que gerará um TypeError.

Para depurar isso, vamos executar o script com PDB:

python -m pdb script_name.py

O depurador inicia, e você pode definir um ponto de interrupção no ponto de interesse, talvez onde a função add_numbers é chamada:

b main c

O programa é executado até atingir um ponto de interrupção na função main. A partir daqui, você pode inspecionar a linha problemática:

ss pa pb

Esses comandos ajudarão você a identificar que as entradas para a função add_numbers são do tipo errado. Você verá que b é na verdade uma string, levando a um TypeError.

Saindo do PDB

Depois de terminar a depuração, você pode sair do PDB usando o comando 'q':

q

Isso encerrará o depurador e finalizará o programa.

Recursos avançados

Além dos comandos básicos, o PDB fornece recursos avançados que podem aprimorar sua experiência de depuração:

Conclusão

Aprender a usar o PDB pode aprimorar muito sua habilidade de depurar e entender programas Python. Embora possa levar algum tempo para se familiarizar com todos os comandos, a recompensa é uma compreensão mais profunda e abrangente da sua base de código. Lembre-se de que depurar não é apenas encontrar e corrigir erros, mas uma oportunidade de melhorar sua compreensão da lógica e do fluxo de sua aplicação. Com o PDB, você tem uma ferramenta poderosa para inspecionar, avaliar e melhorar seu código Python de forma eficiente.

Depurar é uma parte vital do desenvolvimento de software, e dominar ferramentas como o PDB pode aumentar significativamente sua produtividade e qualidade do código. Com prática e experiência, você se verá depurando mais rápido e de forma mais eficaz.

Se você encontrar algo errado com o conteúdo do artigo, você pode


Comentários