{"meta":{"title":"Aprendendo a depurar com o GitHub Copilot","intro":"Peça ajuda ao GitHub Copilot para identificar e corrigir erros no seu código.","product":"Introdução","breadcrumbs":[{"href":"/pt/get-started","title":"Introdução"},{"href":"/pt/get-started/learning-to-code","title":"Aprenda a codificar"},{"href":"/pt/get-started/learning-to-code/learning-to-debug-with-github-copilot","title":"Depurar com Copilot"}],"documentType":"article"},"body":"# Aprendendo a depurar com o GitHub Copilot\n\nPeça ajuda ao GitHub Copilot para identificar e corrigir erros no seu código.\n\nLocalizar e corrigir bugs no código pode ser frustrante, especialmente quando você é um novo desenvolvedor. A boa notícia é que ferramentas como o GitHub Copilot podem identificar e eliminar os bugs rapidamente, permitindo que você se concentre em um trabalho mais criativo e interessante.\n\n## Pré-requisitos\n\nOs exemplos neste artigo pressupõem que você esteja usando GitHub Copilot para depurar um projeto em Python no Visual Studio Code (VS Code). Para seguir os exemplos, você precisa:\n\n* Conclua a [configuração de Visual Studio Code com Copilot](https://code.visualstudio.com/docs/copilot/setup-simplified) na documentação de Visual Studio Code.\n* [Download Python](https://www.python.org/downloads/).\n* Instale a extensão [Python para Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-python.python).\n\n## Como aprender a depurar por meio de exemplos\n\nHá duas situações principais que você encontrará ao tentar executar um código com bugs:\n\n* O código é fechado antes de terminar de ser executado e você recebe uma mensagem de erro.\n* O código é executado sem erros, mas a saída é diferente do esperado.\n\nA boa notícia é que o Copilot pode ajudar a depurar seu código em ambas as situações. Para saber como fazer isso, acompanhe os exemplos a seguir.\n\n### Depurando um erro com GitHub Copilot\n\nAo executar um código com bugs, você geralmente receberá uma mensagem de erro. A mensagem informa o arquivo e a linha em que o erro ocorreu e descreve brevemente o que deu errado. No entanto, as mensagens de erro podem ser confusas. Para entender por completo e corrigir o bug, podemos pedir ajuda ao Copilot.\n\nVamos tentar fazer isso com um repositório de exemplo: [`new2code/debug-with-copilot`](https://github.com/new2code/debug-with-copilot).\n\n#### Clonando o repositório de exemplo\n\nPrimeiro, precisamos criar uma cópia local do repositório:\n\n1. [Comece clonando o repositório new2code/debug-with-copilot](vscode://vscode.git/clone?url=https://github.com/new2code/debug-with-copilot) em VS Code. <!-- markdownlint-disable-line GHD003 -->\n2. Escolha um local para salvar o repositório no computador e, em seguida, clique em **Selecionar como Destino de Repositório**.\n3. Quando for solicitado, abra o repositório.\n\n#### Executando o arquivo com bug\n\nAgora, vamos executar o arquivo [`bugged_dice_battle.py`](https://github.com/new2code/debug-with-copilot/blob/main/bugged_dice_battle.py). O programa simula uma batalha de dados entre dois jogadores.\n\n1. No VS Code, abra e examine o arquivo `bugged_dice_battle.py`.\n\n2. Abra a Paleta de Comandos pressionando <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux) ou <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Mac).\n\n3. Digite `Terminal: Create New Terminal` e pressione <kbd>Enter</kbd>.\n\n4. Na guia Terminal, cole o seguinte comando.\n\n   Windows:\n\n   ```shell copy\n   py bugged_dice_battle.py\n   ```\n\n   Mac ou Linux:\n\n   ```shell copy\n   python bugged_dice_battle.py\n   ```\n\n5. Pressione <kbd>ENTER</kbd> para executar o programa.\n\nRecebemos um texto de erro no terminal que termina com a seguinte mensagem:\n\n> TypeError: apenas é possível concatenar str (não \"int\") a str\n\n#### Depurando o arquivo\n\nPara entender o que significa esse erro, [abra Bate-papo do Copilot em VS Code](vscode://GitHub.Copilot-Chat?ref_product=copilot\\&ref_type=engagement\\&ref_style=text), depois cole e envie o seguinte prompt: <!-- markdownlint-disable-line GHD003 -->\n\n```text copy\nExplain in depth why my code produces the following error and how I can fix it:\n\nTypeError: can only concatenate str (not \"int\") to str\n```\n\nO Copilot responderá que o erro ocorre porque estamos tentando concatenar os inteiros `die_1` e `die_2` com cadeias de caracteres, e só é possível concatenar cadeias de caracteres com cadeias de caracteres.\n\nTambém fornecerá uma **versão atualizada do nosso código** que corrige o bug usando a função `str()` para converter os inteiros em strings antes de concatená-los. Pratique a etapa final da depuração aplicando a sugestão do Copilot ao arquivo.\n\n### Como depurar uma saída incorreta com o GitHub Copilot\n\nÀs vezes, o código com bugs é executado sem gerar nenhum erro, mas a saída está claramente incorreta. Nesse caso, a depuração pode ser mais difícil porque o VS Code não pode informar o local ou a descrição do bug.\n\nPara esses bugs “invisíveis”, o Copilot é particularmente útil. Vamos testar na prática com o outro arquivo de nosso repositório de exemplo: `bugged_factorial_finder.py`. É um programa Python que deve calcular um fatorial.\n\n#### Executando o arquivo com bug\n\nPrimeiro, vamos executar o programa para ver a saída incorreta:\n\n1. Abra e examine o arquivo `bugged_factorial_finder.py`.\n\n2. No terminal criado anteriormente, cole o comando a seguir.\n   Windows:\n\n   ```shell copy\n   py bugged_factorial_finder.py\n   ```\n\n   Mac ou Linux:\n\n   ```shell copy\n   python bugged_factorial_finder.py\n   ```\n\n3. Pressione <kbd>ENTER</kbd> para executar o programa.\n\nInfelizmente, o código não funciona conforme o esperado. Queremos que ele retorne `720`, o valor correto do fatorial de 6, mas a saída é muito maior do que isso.\n\n#### Depurando o arquivo\n\nPara entender o que deu errado, [abra Bate-papo do Copilot](vscode://GitHub.Copilot-Chat?ref_product=copilot\\&ref_type=engagement\\&ref_style=text) e envie o seguinte prompt: <!-- markdownlint-disable-line GHD003 -->\n\n```text copy\nWhy is the output of this code so much higher than expected? Please explain in depth and suggest a solution.\n```\n\nO Copilot apontará que, como estamos usando o operador `*=`, estamos multiplicando `factorial` por ambos `i`**e**`factorial`. Em outras palavras, estamos multiplicando por um `factorial` extra a cada iteração do loop.\n\nPara corrigir esse erro, o Copilot vai sugerir um código que remove o `factorial` extra da equação ou que altera o operador `*=` para `=`. Faça essa alteração agora!\n\n## Como depurar seu projeto\n\nAgora que você praticou a depuração de alguns programas simples com Copilot, você pode usar as mesmas metodologias para encontrar e corrigir erros ocultos em seu próprio trabalho.\n\nPor exemplo, para depurar uma mensagem de erro gerada pelo código, envie ao Copilot a seguinte solicitação:\n\n```text copy\nExplain in depth why my code produces the following error and how I can fix it:\n\nYOUR-ERROR-MESSAGE\n```\n\nCaso contrário, se você estiver depurando uma saída incorreta, pergunte a Copilot por que a saída está incorreta e como você pode corrigi-la. Para ter os melhores resultados, dê o máximo de contexto possível sobre como a saída é diferente das suas expectativas.\n\nCom essas táticas, você tem tudo o que precisa para começar a eliminar os bugs no seu projeto.\n\n## Próximas etapas\n\nConforme você prossegue com a codificação, é provável que encontrará cenários de problemas específicos e erros difíceis de serem depurados. Para obter uma lista de possíveis problemas e exemplos de prompts de Bate-papo do Copilot para corrigi-los, consulte [Depurar erros](/pt/copilot/copilot-chat-cookbook/debugging-errors)."}