Сочетания клавиш не работают после присоединения процесса (ошибка Visual Studio 2013 во время отладки)


Я написал небольшой плагин VSIX, который способен присоединить отладчик к определенному процессу. Этот процесс написан с использованием C# и c++ кода, поэтому мне нужно присоединить к нему как управляемые, так и нативные движки. В Visual Studio это может быть достигнуто просто путем выбора этих движков из окна, открытого DEBUG - > Attach to process... -> Выбирать...:

Введите описание изображения здесь

Ниже я показал пример кода, который в основном делает то же самое, используя 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);

К сожалению, тот же самый код, который работает для VS2012, не работает для VS2013 (обновление 1).

Что я заметил, так это проблемы с клавиатурой. Visual Studio не реагирует на нажатие клавиш быстрого доступа. Например, если я нажимаю F10 , отладчик ничего не делает. Если я хочу перешагнуть через любую точку останова, мне нужно использовать мышь вместо этого и получить доступ к контекстному меню: DEBUG -> Step Over и т. д.

Это раздражает, мне нужна клавиатура для управления отладчик. Кто-нибудь заметил эту проблему и уже решил ее?

Кстати : Если я использую управляемый движок только (transport.Engines.Item("managed")), клавиатура начинает работать правильно. Но поскольку мне также нужно отлаживать через неуправляемый код, мне нужен дополнительный движок - родной.

EDIT: я сообщил об этом также в Microsoft Connect network.

2 2

2 ответа:

Я нашел временный обходной путь. Чтобы исправить эту проблему, я открыл TOOLS - > Options... - >Отладка - > общие и проверено использовать управляемый режим совместимости опция:

Введите описание изображения здесь

Более того, это изменение парадоксальным образом устраняет другую, казалось бы, не связанную проблему, а именно оценку выражений в Watch или Immediate для некоторых частных случаев (что я также заметил несколько дней назад).

Обновление:

Я обнаружил это проблема с использованием Microsoft Visual Studio Premium 2013, версия 12.0.30110.00 обновление 1

После установки версии 12.0.30219.00 Update 2 CTP, эта проблема больше не воспроизводима для меня.

Как Ярек упоминал выше, эта проблема не должна повторяться вUpdate 2 CTP 2 . Если вы все еще сталкиваетесь с этим, пожалуйста, повторно активируйте ошибку Connect