2009-06-12 41 views

Trả lời

22

Bạn có thể attach to a running process sử dụng Tools | Attach to Process. Nếu đó là Ứng dụng web, bạn có thể đính kèm với ứng dụng này bằng cách đính kèm vào aspnet_wp.exe hoặc w3wp.exe.

Để trả lời câu hỏi của bạn về làm thế nào để đính kèm vào một quá trình lập trình:

Dưới đây là những câu hỏi Stack Overflow khác mà đối phó với điều đó:

3

Trong phòng thu trực quan, nhấp vào Công cụ | Đính kèm quy trình. Sau đó chọn dịch vụ phù hợp.

2

Bạn có thể thực hiện việc này bằng khá nhiều trình gỡ lỗi đáng giá muối của nó.

Visual Studio có một ứng dụng phù hợp với nhu cầu của bạn.

Nếu bạn cần kiểm soát nâng cao hơn một chút, hãy thử OllyDbg, là bộ tách rời, vì vậy bạn có thể thực sự thao tác chương trình của mình ở cấp độ lắp ráp. Điều này sẽ cung cấp cho bạn toàn quyền kiểm soát, nhưng nó có thể là quá tải thông tin là tốt.

+0

WinDbg nên được sử dụng. WinDbg với SOS thực sự trumps OllyDbg cho. OllyDbg có nhiều tính năng "phân tích" hơn nhưng WinDbg thích hợp hơn ở đây - nơi OP có thể chỉ muốn gỡ lỗi quá trình của riêng mình – kizzx2

1

Trong Visual Studio 2015, nhấp vào 'Gỡ lỗi> Đính kèm quy trình' trong menu. Ngoài ra, có một phím tắt Ctrl + Alt + P.

0

Bạn có thể thực hiện việc này trong mã của mình.

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; 
     } 

Cách sử dụng:

Attach(GetCurrent()); 
Các vấn đề liên quan