Автоматическое присоединение к дочернему процессу в Visual Studio во время отладки
при написании плагинов для media center ваш плагин размещается в ehexthost.exe
этот exe запускается из ehshell.exe
и у вас нет возможности запускать его напрямую, вместо этого вы передаете специальный параметр ehshell.exe
который запустит плагин в отдельном процессе.
когда мы отладки мультимедиа-браузер Я нахожу процесс присоединения ко второму процессу неуклюжим, я знаю об отладчике.Прикрепите, а также некоторые специальный реестр записи я могу использовать.
оба эти метода не совсем соответствуют моему счету. Я хочу нажать F5 и автоматически подключить текущий экземпляр visual studio к дочернему процессу. Можно ли это сделать?
если есть плагин для VS, который позволяет мне достичь этой функциональности, я был бы доволен им.
редактировать
Я закончил со следующим макросом:
Public Sub CompileRunAndAttachToEhExtHost()
DTE.Solution.SolutionBuild.Build(True)
DTE.Solution.SolutionBuild.Debug()
Dim trd As System.Threading.Thread = New System.Threading.Thread(AddressOf AttachToEhExtHost)
trd.Start()
End Sub
Public Sub AttachToEhExtHost()
Dim i As Integer = 0
Do Until i = 50
i = i + 1
Try
For Each proc As EnvDTE.Process In DTE.Debugger.LocalProcesses
If (proc.Name.IndexOf("ehexthost.exe") <> -1) Then
proc.Attach()
Exit Sub
End If
Next
Catch e As Exception
' dont care - stuff may be busy
End Try
Threading.Thread.Sleep(100)
Loop
End Sub
кроме того, я описал процесс, как этого на моем блоге.
5 ответов
Я бы использовал макрос. Я переопределил свою функцию F5 для присоединения к asp.net процесс вместо длинной сборки / проверки обычно выполняется. Это работает довольно хорошо для меня, и это действительно легко.
For Each process In DTE.Debugger.LocalProcesses
If (process.Name.IndexOf("aspnet_wp.exe") <> -1) Then
process.Attach()
Exit Sub
End If
Next
для VS2012 макросы были удалены,но вы все равно можете сделать это довольно быстро со стандартными сочетаниями клавиш. Например, для присоединения к iisexpress.exe:
Ctrl + Alt + p - выводит диалоговое окно присоединить к процессу
Я - переходит к первому процессу, начинающемуся с i в списке (для меня это iisexpress.exe)
Enter - attaches
для супер скорости, вы также можете выключите предупреждение о безопасности Visual Studio Attach при отладке IIS.
Я отлаживал плагин C++ во внешнем порожденном процессе, который разбился, бросив исключение при запуске, и это отлично сработало для меня:
добавить бесплатное подключить расширение для Visual Studio. Попросите его повторно присоединить к имени процесса перед его запуском. Он появится модальное диалоговое окно, говорящее, что он ждет запуска имени процесса.
теперь запустите процесс, и отладчик Visual Studio немедленно присоединится, поймав исключения и попадание в точки останова.
(Это также было в медиа-плагине, исключение обычно ловилось и перестраивалось хост-процессом в контексте Delphi, поэтому мне нужно было сломаться до этого).
вы можете автоматически подключиться к процессу, нажав F5, если вы настроили что-то подобное в visual studio:
http://vvcap.net/db/ujYL7zeN_n_RgeprqCSM.htp
обратите внимание: есть "команда", заполненная как исполняемое имя, и " прикрепить "должно быть"да"