Tutorial: Depurar um projeto do CMake em um computador Windows remoto

Este tutorial usa o Visual Studio C++ no Windows para criar e criar um projeto do CMake que você pode implantar e depurar em um computador Windows remoto. O tutorial é específico do Windows ARM64, mas as etapas podem ser generalizadas para outras arquiteturas.

No Visual Studio, a experiência de depuração padrão para ARM64 é a depuração remota de um computador WINDOWS ARM64. Defina as configurações de depuração conforme mostrado neste tutorial. Caso contrário, ao tentar depurar um projeto do CMake ARM64, você receberá um erro de que o Visual Studio não consegue localizar o computador remoto.

Neste tutorial, você aprenderá como:

  • criar um projeto CMake
  • configurar um projeto CMake para compilar para ARM64
  • configurar um projeto do CMake para ser executado em um computador remoto do Windows ARM64
  • depurar um projeto CMake em execução em um computador remoto do Windows ARM64

Pré-requisitos

No computador host

Para configurar o Visual Studio para desenvolvimento em C++ multiplataforma, instale as ferramentas de build para a arquitetura de destino. Para este tutorial, instale as ferramentas de build do ARM64 executando essas etapas:

  1. Execute o instalador do Visual Studio. Se você ainda não instalou o Visual Studio, consulte Instalar o Visual Studio
  2. Na tela inicial Instalador do Visual Studio, escolha Modificar.
  3. Nas opções na parte superior, escolha Componentes individuais.
  4. Role para baixo até a seção Compiladores, ferramentas de compilação e runtimes.
  5. Certifique-se de que os seguintes itens estejam selecionados:
    • Ferramentas C++ CMake para Windows
    • MSVC v142 – Ferramentas de build C++ ARM64 do VS 2019 (mais recente) É importante que você escolha as ferramentas de build ARM64 e não as ferramentas de build ARM (procure por 64) e escolha a versão que acompanha VS 2019.
  6. Selecione Modificar para instalar as ferramentas.

No computador remoto

  1. Instale as ferramentas remotas no computador remoto. Para este tutorial, instale as ferramentas ARM64 seguindo as instruções em Baixar e instalar as ferramentas remotas.
  2. Inicie e configure o depurador remoto no computador remoto. Para este tutorial, siga as instruções em configuração do depurador remoto no computador Windows remoto.

Crie um projeto CMake

No computador host Windows:

  1. Execute o Visual Studio
  2. No menu principal, selecione Arquivo>Novo>Projeto.
  3. Selecione Projeto CMake>Próximo
  4. Dê um nome ao projeto e escolha um local. Em seguida, selecione Criar.

Espere até que o Visual Studio alguns crie o projeto e preencha o Gerenciador de soluções.

Configurar para ARM64

Para direcionar um computador ARM64 Windows, você precisa criar usando ferramentas de build ARM64.

Selecione a opção Configuração no menu suspenso do Visual Studio e selecione Gerenciar configurações.

Choose Manage Configurations in the Visual Studio configurations drop-down.

Adicione uma nova configuração selecionando Adicionar uma nova configuração (o botão verde +).
Na caixa de diálogo CMakeSettings que aparece, selecione arm64-debug e, depois, escolha Selecionar:

Add arm64-debug configuration.

Esse comando adiciona uma configuração de depuração nomeada arm64-Debug ao arquivo CmakeSettings.json. Esse nome de configuração é um nome exclusivo e amigável que facilita a identificação dessas configurações no menu suspenso Configuração.

O menu suspenso Conjunto de ferramentas está definido como msvc_arm64_x64. Suas configurações devem ter essa aparência:

CMake settings dialog.

Observação

No menu suspenso Conjunto de Ferramentas, msvc_arm64 seleciona ferramentas de host de 32 bits para compilar cruzadamente para o ARM64, enquanto msvc_arm64 x64 seleciona ferramentas de host de 64 bits para compilar em ARM64, que é o que você fará neste tutorial. Para obter mais informações sobre os ambientes de conjunto de ferramentas disponíveis, consulte Ambientes predefinidos.

Salve o arquivo CMakeSettings.json. No menu suspenso de configuração, selecione arm64-debug. (Pode demorar um pouco depois de salvar o arquivo CMakeSettings.json para que ele apareça na lista):

Ensure that arm64-debug is selected in the Visual Studio configurations drop-down.

Adicionar um arquivo de configuração de depuração

Em seguida, adicione informações de configuração que informem ao Visual Studio onde encontrar seu computador remoto, juntamente com outros detalhes de configuração.

Altere o modo de exibição Gerenciador de soluções para a exibição de destinos selecionando o botão Alternar exibições:

Solution explorer switch view button.

Em seguida, no Gerenciador de Soluções, clique duas vezes no Modo de exibição de destinos do CMake para ver o projeto.

Abra a pasta do projeto (neste exemplo, Projeto CMakeProject3) e clique com o botão direito do mouse no executável e selecione Adicionar configuração de depuração:

Select add debug configuration.

Esse comando cria um arquivo launch.vs.json no seu projeto. Abra-o e altere as seguintes entradas para habilitar a depuração remota:

  • projectTarget: esse valor será definido para você se você adicionou o arquivo de configuração de depuração da exibição de destinos do Gerenciador de Soluções de acordo com as instruções acima.
  • remoteMachineName: definido como o endereço IP do computador ARM64 remoto ou o nome do computador.

Para obter mais informações sobre configurações do launch.vs.json, consulte referência de esquema launch.vs.json.

Observação

Se você estiver usando a exibição de pasta em vez da exibição de destinos no Gerenciador de soluções, clique com o botão direito do mouse no arquivo CMakeLists.txt e selecione Adicionar configuração de depuração. Essa experiência difere da adição da configuração de depuração da exibição de destinos das seguintes maneiras:

  • Será solicitado que você selecione um depurador (selecione Depuração remota do Windows C/C++).
  • O Visual Studio fornecerá menos informações de modelo de configuração no arquivo launch.vs.json, portanto, você precisará adicioná-lo por conta própria. Você precisará fornecer as entradas remoteMachineName e projectTarget. Quando você adiciona a configuração do modo de exibição de destinos, só precisa especificar remoteMachineName.
  • Para o valor de configuração projectTarget, verifique a lista suspensa do item de inicialização para obter o nome exclusivo do seu destino, por exemplo, neste tutorial, ele é CMakeProject3.exe'.

Inicie o monitor de depurador remoto no computador Windows remoto

Antes de executar seu projeto do CMake, verifique se o depurador remoto do Visual Studio 2019 está em execução no computador Windows remoto. Talvez seja necessário alterar as opções de depurador remoto, dependendo da situação de autenticação.

Por exemplo, no computador remoto, na barra de menus Depurador remoto do Visual Studio, selecione Opções>Ferramentas. Defina o modo de autenticação para corresponder à configuração do ambiente:

Remote debugger authentication options.

Em seguida, no Visual Studio, no computador host, atualize o arquivo launch.vs.json para que ele seja compatível. Por exemplo, se você escolher Sem autenticação no depurador remoto, atualize o arquivo launch.vs.json em seu projeto adicionando "authenticationType": "none" à seção configurationslaunch.vs.json. Caso contrário, o padrão de "authenticationType" é "windows" e ele não precisa ser explicitamente declarado. Esse exemplo mostra um arquivo launch.vs.json configurado para não ter autenticação:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
        "type": "remoteWindows",
        "authenticationType": "none"
        "name": "CMakeLists.txt",
        "project": "CMakeLists.txt",
        "projectTarget": "CMakeProject3.exe",
        "remoteMachineName": "<ip address goes here>",
        "cwd": "${debugInfo.defaultWorkingDirectory}",
        "program": "${debugInfo.fullTargetPath}",
        "deploy": [],
        "args": [],
        "env": {}
    },
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "CMakeProject3.exe",
      "name": "CMakeProject3.exe"
    }
  ]
}

Depurar o aplicativo

No computador host, no Gerenciador de soluções do Visual Studio, abra o arquivo CPP do seu projeto do CMake. Se você ainda estiver no Modo de exibição de destinos do CMake, precisará abrir o nó (executável) para vê-lo.

O arquivo CPP padrão é um aplicativo de console “hello world” simples. Defina um ponto de interrupção em return 0;

Na barra de ferramentas do Visual Studio, use o menu suspenso Item de inicialização para selecionar o nome especificado para "name" em seu arquivo launch.vs.json:

Example startup item dropdown with CMakeProject3.exe selected.

Para iniciar a depuração, na barra de ferramentas do Visual Studio, escolha Depurar>Iniciar Depuração (ou pressione F5).

Se não for iniciado, verifique se o seguinte está definido corretamente no arquivo launch.vs.json:

  • "remoteMachineName" deve ser definido como o endereço IP, ou o nome do computador, do computador remoto ARM64 Windows.
  • "name" deve corresponder à seleção na lista suspensa de item de inicialização do Visual Studio.
  • "projectTarget" deve corresponder ao nome do destino do CMake que você deseja depurar.
  • "type" deve ser "remoteWindows"
  • Se o tipo de autenticação no depurador remoto estiver definido como Sem autenticação, será preciso definir "authenticationType": "none" no arquivo launch.vs.json.
  • Se você estiver usando autenticação do Windows, entre quando solicitado usando uma conta reconhecida pelo computador remoto.

Após a compilação do projeto, o aplicativo deverá aparecer no computador remoto arm64 do Windows:

Hello CMake console app running on remote Windows ARM64 machine.

O Visual Studio no computador host deve ser interrompido no ponto de interrupção para return 0;.

O que você aprendeu

Neste tutorial, você criou um projeto do CMake, configurou-o para compilar para Windows no ARM64 e depurou-o em um computador remoto ARM64 Windows.

Próximas etapas

Saiba mais sobre como configurar e depurar projetos do CMake no Visual Studio: