Os atalhos de teclado não funcionam após a anexação do processo (bug do Visual Studio 2013 durante a depuração)
-
20-12-2019 - |
Pergunta
Eu escrevi um pequeno plugin VSIX que é capaz de anexar o depurador a um processo específico.Este processo é escrito usando código c# e c++, então preciso anexá-lo usando mecanismos gerenciados e nativos.No Visual Studio, isso pode ser conseguido simplesmente selecionando esses mecanismos na janela aberta por DEBUG -> Anexar ao processo...-> Selecione...:
Abaixo, mostrei o exemplo de código que basicamente faz a mesma coisa, usando Process2.Attach2
(MSDN):
EnvDTE80.DTE2 dte = GetService(typeof(SDTE)) as EnvDTE80.DTE2;
EnvDTE80.Debugger2 dteDebugger = dte.Debugger as EnvDTE80.Debugger2;
EnvDTE80.Transport transport = dteDebugger.Transports.Item("default");
EnvDTE80.Engine[] engines = new[] { transport.Engines.Item("managed/native") };
process.Attach2(engines);
Infelizmente, o mesmo código que funciona para VS2012, não funciona para VS2013 (Atualização 1).
O que notei são problemas de teclado.O Visual Studio não reage ao pressionar atalhos de teclas.Por exemplo, se eu pressionar F10, o depurador não faz nada.Se eu quiser ultrapassar qualquer ponto de interrupção, preciso usar o mouse e acessar o menu de contexto: DEBUG -> Avançar, etc.
É chato, preciso do teclado para controlar o depurador.Alguém percebeu esse problema e já resolveu?
POR FALAR NISSO:Se eu usar gerenciou somente motor (transport.Engines.Item("managed")
), o teclado começa a funcionar corretamente.Mas como também preciso depurar por meio de código não gerenciado, preciso de um mecanismo adicional - o nativo um.
EDITAR: Eu tenho relatou isso também para a rede Microsoft Connect.
Solução
Encontrei uma solução temporária.Para corrigir esse problema, abri FERRAMENTAS -> Opções...-> Depuração -> Geral e verificado Use o modo de compatibilidade gerenciada opção:
Além do mais, esta mudança corrige paradoxalmente outra questão aparentemente não relacionada, nomeadamente a avaliação de expressões em Assistir ou Imediato windows para alguns casos particulares (que também notei há alguns dias).
ATUALIZAR:
Detectei esse problema usando o Microsoft Visual Studio Premium 2013, versão 12.0.30110.00 Atualização 1
Após a instalação da Versão 12.0.30219.00 Atualização 2 CTP, esse problema não é mais reproduzível para mim.
Outras dicas
Como Jarek mencionou acima, esse problema não deveria ser reproduzido em Atualização 2 CTP 2.Se você ainda o encontrar, reative o Bug de conexão