O Visual Studio 2019 Preview 1 apresenta um depurador aprimorado para C ++ que usa um processo externo de 64 bits para hospedar seus componentes que consomem muitos recursos. Se você já teve problemas de memória ao depurar aplicativos C ++, agora esses problemas devem ser amplamente resolvidos com o Visual Studio 2019.
Abaixo está um exemplo prático de depuração do Gears of War 4.

Antecedentes
Dando feedback, os desenvolvedores de C ++ frequentemente conversavam sobre os problemas associados ao alto uso de memória durante a depuração de aplicativos C ++ complexos. Um grande consumo de memória está associado a uma enorme quantidade de dados de símbolos, que o depurador deve carregar e exibir na janela do depurador. Além disso, a quantidade dessas informações cresce constantemente durante o trabalho. Por fim, o processo do Visual Studio pode falhar devido à falta de memória.
Fizemos melhorias significativas no Visual Studio 2017 para mitigar esse problema. Por exemplo, a atualização 15.6 introduziu a otimização de memória para / Debug: fastlink, o que levou a uma redução de 30% no consumo de memória pelo depurador. Como nos esforçamos para evitar esse problema no Visual Studio 2019, movemos os componentes que consomem muita memória para um processo de 64 bits separado.
Estudo de caso: Depurando o Gears of War 4
Trabalhamos em estreita colaboração com as equipes de parceiros internos e externos para garantir que as alterações feitas no depurador fossem validadas e validadas em aplicativos grandes e do mundo real. Abaixo, duplicamos o vídeo do cdpv. Ele mostra uma comparação paralela do uso de memória entre o Visual Studio 2017 e o Visual Studio 2019 ao depurar o Gears of War 4 desenvolvido pela The Coalition. O uso de memória do Visual Studio 2017 é aumentado para 1,3 GB após alguns minutos de exibição do código do jogo e verificação das variáveis. O Visual Studio 2019 fornece um uso muito melhor da memória no mesmo cenário: a quantidade de memória usada permanece em torno de 285 MB, pois os dados do símbolo são armazenados em um fluxo de trabalho do depurador de 64 bits.

Agora tudo também funciona muito melhor em tempo de execução.
Cenários não suportados e alguns problemas conhecidos
- Este recurso não é suportado no Windows de 32 bits.
- Símbolos para módulos C ++ / CLI ainda estão sendo carregados em processo
- Os complementos obsoletos do Avaliador de Expressões C ++ ( aqui um exemplo) não são suportados neste modo.
Se você precisar continuar usando o depurador em processo, poderá desativar o recurso acessando a guia "Depuração" em "Ferramentas" -> "Opções" e desmarcando "Carregar símbolos de depuração em processo externo (somente nativo)".
Os caras da
comunidade de desenvolvedores da
Microsoft @msdevru, o canal da comunidade de desenvolvedores da Microsoft para desenvolvedores e todos os interessados em novas tecnologias nos ajudaram a preparar este artigo.