A depuração eficaz e a qualidade do código são conceitos inseparáveis no desenvolvimento de software. A funcionalidade de depuração do Visual Studio (VS) Code é controlada principalmente pelo arquivo launch.json. Este arquivo permite que os desenvolvedores configurem e gerenciem suas configurações de depuração de acordo com sua visão.
Este artigo irá guiá-lo através da abertura e gerenciamento do arquivo launch.json para uma depuração ideal.
Abrindo launch.json no Visual Studio Code
Para definir e gerenciar as configurações de depuração do VS Code, você precisará acessar o arquivo launch.json. Este arquivo desempenha um papel crucial na personalização de depuração.
- Abra o Visual Studio Code.
- Pressione Ctrl + Shift + P para abrir a Paleta de Comandos.
- Digite “Open launch.json” na paleta de comandos e pressione “Enter”. Isso deve abrir o arquivo launch.json para você.
- Se o arquivo launch.json não abrir, verifique se a pasta “.vscode” existe na pasta raiz do seu projeto.
- Se não existir, crie uma nova pasta chamada “.vscode” dentro de sua pasta de usuário.
- Crie um novo arquivo “launch.json” e coloque-o nesta pasta.
O arquivo launch.json estará pronto para ser configurado após habilitá-lo.
Visão geral da estrutura Launch.json
O launch.json exibe as seções “versão” e “configurações”. A seção “configurações” é um array contendo diferentes opções de depuração, que você usará para configurar seu esquema de depuração.
Cada objeto na matriz “configurations” representa um cenário de depuração. Esses objetos têm propriedades que definem o ambiente de depuração, como as configurações de idioma, programa e depurador.
Algumas propriedades comuns que você encontrará nas configurações do launch.json incluem:
- “nome” – Um nome de fácil leitura para a configuração para identificá-la no menu suspenso.
- “type” – Especifica o tipo de depurador (como “node”, “python” ou “cppvsdbg”).
- “request” – Determina o tipo de solicitação, “launch” (para iniciar uma nova instância) ou “attach” (para anexar o depurador a um processo existente).
- “programa” – Caminho de arquivo para o arquivo que você deseja depurar.
- “args” – Uma matriz de argumentos de linha de comando para passar para o programa durante a depuração.
- “preLaunchTask” – Uma tarefa a ser executada antes de iniciar o depurador.
Entender a estrutura do arquivo launch.json permite que você saiba quais opções alterar e quais deixar de lado ao personalizar seu ambiente de depuração.
Definindo configurações de inicialização para diferentes idiomas
As etapas para definir as configurações de inicialização podem variar um pouco dependendo do idioma. Aqui estão as etapas para vários idiomas populares.
como denunciar alguém em discórdia
JavaScript e TypeScript
- Crie um novo arquivo launch.json e configure a propriedade “type” como “node” para JavaScript ou “pwa-node” para TypeScript.
- Defina a propriedade 'solicitação' como 'iniciar' ou 'anexar'.
- Você deve especificar o arquivo de ponto de entrada usando a propriedade “programa”.
Pitão
- Instale o interpretador Python e a extensão para Visual Studio Code.
- Defina a propriedade “type” como “python” em um novo arquivo launch.json.
- Configure a propriedade “request” como “launch” ou “attach”.
- Especifique o arquivo Python a ser executado usando a propriedade “programa”.
- Pode ser necessário definir adicionalmente a propriedade “pythonPath” para o caminho do interpretador Python se não estiver no local padrão.
C# e .NET Core
- Instale a extensão C# para Visual Studio Code.
- No novo arquivo launch.json, defina a propriedade “type” como “coreclr” para .NET Core ou “clr” para .NET Framework.
- Configure a propriedade “request” como “launch” ou “attach”.
- Especifique o arquivo de ponto de entrada usando a propriedade “programa”.
- Defina a propriedade “cwd” para o diretório de trabalho do projeto atual, se necessário.
Java
- Instale o pacote de extensão Java.
- Crie um novo arquivo launch.json e defina a propriedade “type” como “java”.
- Configure a propriedade “request” como “launch” ou “attach”.
- Especifique a classe principal com a propriedade “mainClass”.
- Defina a propriedade “projectName” para o nome do seu projeto Java.
- Configure a propriedade “classpath” para incluir as bibliotecas Java que você usará durante o desenvolvimento Java.
Receitas de configuração de depuração
A seção a seguir aborda várias receitas de configuração de depuração.
Anexando o depurador a um processo em execução
Para anexar o depurador a um processo em execução:
- Defina a propriedade 'solicitação' como 'anexar'.
- Escolha o ID do processo ou filtro para localizar o processo a ser depurado.
Depuração remota de aplicativos
Para depuração remota de aplicativos:
- Use um tipo “remoto”.
- Forneça o endereço do host, porta e possivelmente informações de autenticação para estabelecer uma conexão.
Depurando testes de unidade e conjuntos de testes
Ao depurar testes de unidade e conjuntos de testes:
- Use uma configuração que inclua a estrutura de teste e as configurações para depurar testes de unidade e suítes de teste.
- Defina o conjunto de testes ou arquivos de teste individuais na propriedade “programa” ou “args” para direcionar testes específicos.
Passando Variáveis de Ambiente
A propriedade “env” em launch.json pode passar variáveis de ambiente para seu aplicativo durante a depuração. Essa propriedade é um objeto que contém pares chave-valor para as variáveis de ambiente que você deseja definir.
Depuração Avançada
Vamos explorar algumas técnicas avançadas de depuração para usuários que desejam extrair um pouco mais de poder dos arquivos de depuração.
Pontos de interrupção condicionais e logpoints
Pontos de interrupção e logpoints condicionais melhoram a depuração, pausando ou registrando mensagens somente sob condições específicas. Para usá-los:
- Clique com o botão direito do mouse no número da linha em que deseja definir um ponto de interrupção ou logpoint.
- Selecione “Adicionar ponto de interrupção condicional” ou “Adicionar ponto de log”.
- Insira a condição ou mensagem para acionar a ação.
Mapas de origem
Os mapas de origem permitem que você depure o código que foi transformado ou reduzido.
- Defina a propriedade “sourceMap” como “true” em sua configuração launch.json para usar mapas de origem.
- Certifique-se de que seu processo de construção gere mapas de origem e o código transformado.
Integrando Depuradores Externos
Você pode integrar depuradores e ferramentas externas, como gdb ou lldb, no VS Code, se desejar.
- Instale a extensão do depurador de sua escolha.
- Defina as configurações do depurador no arquivo launch.json.
Depurando Aplicativos Multi-Threaded
Ao depurar aplicativos multiencadeados, você pode controlar a execução de encadeamentos individuais.
- Use a visualização “threads” na barra lateral Debug para gerenciar os threads durante uma sessão de depuração.
- Você pode pausar, retomar ou percorrer a execução do código para cada thread separadamente.
Depuração de vários destinos
As configurações de inicialização composta permitem a depuração de vários destinos simultaneamente. Se você quiser aproveitar esse recurso, adicione uma matriz “compounds” com nomes de configuração para agrupar. Execute-os escolhendo o nome da configuração composta no menu suspenso Depurar.
Defina várias configurações de inicialização direcionadas a diferentes serviços, funções ou endpoints para depurar microsserviços e aplicativos sem servidor. Use configurações de inicialização compostas para executar esses destinos juntos.
Para espaços de trabalho multiraiz, crie arquivos launch.json separados para cada pasta. Defina as configurações de inicialização para cada pasta raiz individualmente para depurar projetos separadamente ou simultaneamente usando compostos.
Solução de problemas comuns do launch.json
Às vezes, a depuração é propensa a seu próprio conjunto de bugs. Vejamos alguns problemas comuns e como resolvê-los.
Erros de validação de esquema
Erros de validação de esquema ocorrem quando um arquivo launch.json tem propriedades ou valores inválidos. Para corrigir erros de esquema:
- Revise as mensagens de erro do painel Problemas.
- Atualize o arquivo launch.json de acordo com as informações da mensagem de erro.
Falhas de depuração
Configurações de inicialização incorretas podem causar falhas de depuração.
como entrar em um servidor discord
- Verifique suas configurações de inicialização para caminhos de arquivo incorretos.
- Verifique se o depurador ou os tipos de solicitação estão ausentes ou incorretos.
- Atualize as configurações conforme necessário.
Diagnosticando problemas de configuração de inicialização
Para diagnosticar problemas com configurações de inicialização:
- Habilite o log de diagnóstico definindo a propriedade “trace” como “detalhado”.
- Revise os logs gerados no console de depuração para identificar e corrigir quaisquer problemas.
Dicas para launch.json
Use o launch.json de maneira otimizada com estas dicas:
- Use nomes significativos para suas configurações de inicialização para torná-las facilmente identificáveis. Esta prática ajuda você a encontrar a configuração apropriada rapidamente ao trabalhar com vários cenários de depuração.
- Compartilhe as configurações de inicialização com sua equipe incluindo o arquivo launch.json no sistema de controle de versão do seu projeto. Cada membro da equipe pode acessar as mesmas configurações e definições de depuração.
- Os sistemas de controle de versão, como o Git, podem rastrear alterações em seu arquivo launch.json. Você pode usar o controle de versão para reverter para as configurações anteriores e colaborar com outros membros da equipe compartilhando as configurações recomendadas com eles.
- Instale extensões que suportem linguagens específicas, depuradores ou ferramentas que atendam às demandas do projeto. Configure o arquivo launch.json para usar essas extensões e seus recursos durante as sessões de depuração.
Iniciar na depuração
Aproveitando o poder do launch.json, você pode ajustar sua experiência de depuração para corresponder melhor ao seu estilo de codificação. Isso aumentará a qualidade e o desempenho do seu código.
Com que frequência você precisa definir as configurações de inicialização? Você tem alguma dica de configuração? Por favor, compartilhe suas experiências na seção de comentários abaixo.