2009-06-12 2 views

ответ

22

attach to a running process используя Tools | Attach to Process. Если это веб-приложение, вы можете прикрепить к нему, присоединив к aspnet_wp.exe или w3wp.exe.

Чтобы ответить на ваш вопрос о том, как подключиться к процессу программно:

Вот другие вопросы Stack Overflow, которые имеют дело с этим:

3

В визуальной студии нажмите Инструменты | Присоединитесь к процессу. Затем выберите соответствующий сервис.

2

Вы можете сделать это практически в любом отладчике, заслуживающем его соли.

У Visual Studio есть тот, который должен соответствовать вашим потребностям.

Если вам нужно немного более совершенное управление, попробуйте OllyDbg, который является дизассемблером, поэтому вы можете фактически манипулировать своей программой на уровне сборки. Это даст вам полный контроль, но это может быть и перегрузка информации.

+0

WinDbg должен быть использован. WinDbg с SOS действительно превосходит OllyDbg для .NET. OllyDbg имеет больше возможностей «анализа», но WinDbg здесь более уместен - где OP, вероятно, только хочет отладить собственный процесс – kizzx2

1

В Visual Studio 2015 щелкните «Отладка> Прикрепить к процессу» в меню. Кроме того, имеется комбинация клавиш Ctrl + Alt + P.

0

Вы можете сделать это в своем коде.

public static void Attach(DTE2 dte) 
     { 
      var processes = dte.Debugger.LocalProcesses; 
      foreach (var proc in processes.Cast<EnvDTE.Process>().Where(proc => proc.Name.IndexOf("YourProcess.exe") != -1)) 
       proc.Attach(); 
     } 

     internal static DTE2 GetCurrent() 
     { 
      var dte2 = (DTE2)Marshal.GetActiveObject("VisualStudio.DTE.12.0"); // For VisualStudio 2013 

      return dte2; 
     } 

Использование:

Attach(GetCurrent()); 
Смежные вопросы