Como depurar e criar um perfil de qualquer EXE com o Visual Studio

Você já precisou depurar ou criar um perfil de um executável (arquivo .exe) para o qual você não tem fonte ou não pode criar? Em seguida, o tipo de projeto menos conhecido do Visual Studio, o projeto EXE, é para você!

No Visual Studio, você pode abrir qualquer EXE como um 'projeto'. Basta ir em Arquivo-> Abrir-> Projeto / Solução e navegue até o arquivo .exe . Como você faria se fosse um arquivo .sln . O Visual Studio abrirá esse EXE como um projeto. Esse recurso existe há muito tempo. Ele funciona em todas as versões atualmente suportadas do Visual Studio e os documentos estão em ' Depurar um aplicativo que não faz parte de uma solução do Visual Studio '.



Este artigo em nosso blog .

Depuração


Assim como em um projeto normal, você pode começar a depurar com o F5, que iniciará o EXE e anexará o depurador. Se você quiser depurar a inicialização, inicie com o F11, que iniciará o EXE e será interrompido na primeira linha do código do usuário. Ambas as opções estão disponíveis no menu de contexto do projeto EXE na janela Solution Explorer , conforme ilustrado abaixo:



Para a depuração, é necessário ter símbolos, arquivos PDB, para o EXE e qualquer DLL que você precise depurar. O Visual Studio seguirá o mesmo processo para tentar obter símbolos, como ocorre ao depurar um projeto normal. Como não é provável que os arquivos PDB tenham sido distribuídos junto com o EXE, convém localizá-los em uma queda de compilação ou, melhor ainda, em um servidor de símbolos. Mais informações e práticas recomendadas para símbolos podem ser encontradas neste blog .

Para depurar efetivamente, você também precisará do código-fonte usado para criar o EXE, mesmo para apenas alguns arquivos importantes. Você precisará localizar esses arquivos e abri-los no Visual Studio. Se o código-fonte não for exatamente o mesmo que o código-fonte que foi criado, o EXE Visual Studio avisará você quando você tentar inserir um ponto de interrupção e o ponto de interrupção não será vinculado. Esse comportamento pode ser substituído na janela de exibição Configurações do ponto de interrupção . Na janela de visualização das configurações, clique no texto do link Deve corresponder à fonte e marque a caixa para permitir uma fonte incompatível, conforme ilustrado abaixo. Obviamente, com uma fonte incompatível, você nunca sabe realmente o que vai acontecer, então use por sua conta e risco.



Se o EXE foi criado com o SourceLink ativado, as informações sobre a fonte serão incluídas nos PDBs e o Visual Studio tentará fazer o download da fonte automaticamente. Esse é realmente um bom motivo para usar o SourceLink em seus projetos. Mesmo se você tiver um alistamento local, poderá não ter a mesma versão usada para construir o binário. O SourceLink é o caminho certo para garantir que a fonte correta esteja vinculada ao binário correto.

Se você não pode obter nenhum código-fonte, ainda tem algumas opções:

  1. Use uma ferramenta para descompilar os assemblies novamente em C #, que você pode recompilar em um novo assembly para corrigir o antigo.
    1. O ILSpy é uma ótima opção para isso, mas existem muitas outras boas ferramentas gratuitas e pagas por aí.

  2. Use a janela da ferramenta Desmontagem no Visual Studio.
    1. O documento Origem não encontrada possui um link para visualizar a desmontagem . Esteja avisado, se você estiver acostumado a depurar código C #, a exibição de desmontagem é uma ferramenta de último recurso.


Por fim, se você precisar passar argumentos para o EXE que está sendo depurado, poderá configurá-los juntamente com outras opções na página Propriedades do Projeto ( Clique com o Botão Direito-> Propriedades no nó do projeto no Solution Explorer).



Criação de perfil


Você também pode usar as ferramentas de criação de perfil com o EXE iniciando-as no Debug -> Performance Profiling . Na página de inicialização das ferramentas de criação de perfil, você pode selecionar quais ferramentas usar no EXE. Mais informações sobre criação de perfil podem ser encontradas neste documento ( https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019 ).



Conclusão


É isso. Uma breve visão geral de como você pode usar o Visual Studio para depurar e criar um perfil de aplicativos que você não está criando e que talvez nem tenha origem. Portanto, da próxima vez que você precisar depurar ou criar um perfil de um EXE, não esqueça que você pode abri-lo como uma solução no Visual Studio!

Source: https://habr.com/ru/post/pt468317/


All Articles