2012-04-17 98 views
5

tôi muốn sử dụng ILspy debug một dll, như pic:cách sử dụng trình gỡ lỗi ILspy một dll?

enter image description here

nhưng nó chỉ có thể hiển thị quá trình hai:

enter image description here

nhưng trong VS2010, tôi có thể đính kèm quá trình hơn: enter image description here

cách hiển thị w3wp.exe trong ILspy? ai có thể giúp tôi?

+0

Bất kỳ may mắn nào gắn liền với w3wp? Và gỡ lỗi? – Konstantin

+2

Phiên bản này là gì? Tôi không thấy menu gỡ lỗi trong 2.4.0.1963 –

Trả lời

3

Từ mã nguồn ILSpy (ICSharpCode.ILSpy.Debugger.UI.AttachToProcessWindow):

Process currentProcess = Process.GetCurrentProcess(); 
     foreach (Process process in Process.GetProcesses()) { 
      try { 
       if (process.HasExited) continue; 
       // Prevent attaching to our own process. 
       if (currentProcess.Id != process.Id) { 
        bool managed = false; 
        try { 
         var modules = process.Modules.Cast<ProcessModule>().Where(
          m => m.ModuleName.StartsWith("mscor", StringComparison.OrdinalIgnoreCase)); 

         managed = modules.Count() > 0; 
        } catch { } 

        if (managed) { 
         list.Add(new RunningProcess { 
            ProcessId = process.Id, 
            ProcessName = Path.GetFileName(process.MainModule.FileName), 
            FileName = process.MainModule.FileName, 
            WindowTitle = process.MainWindowTitle, 
            Managed = "Managed", 
            Process = process 
           }); 
        } 
       } 
      } catch (Win32Exception) { 
       // Do nothing. 
      } 
     } 

vẻ tương đối thẳng về phía trước ...

Nó được phần mềm xem trước, vì vậy có lẽ có một lỗ hổng trong thuật toán này để xác định liệu một quy trình có sử dụng mã được quản lý hay không.

Bạn có thể có khả năng di chuyển vượt qua vấn đề này chỉ bằng cách tải về mã nguồn và thay đổi

bool managed = false;

để

bool managed = true;

và biên dịch lại.

Tôi không cài đặt phiên bản đầy đủ của IIS7 vì vậy tôi không thể tạo lại sự cố của bạn, nhưng tôi nghi ngờ rằng tôi sẽ gặp phải vấn đề tương tự vì máy chủ phát triển studio trực quan của tôi hiển thị tốt trong ILSpy trong khi máy của bạn không phải. Có lẽ có một cái gì đó khác biệt về môi trường của bạn mà messes với các thuật toán trên.

3

32 bit và 64 bit cũng có thể đóng một số vai trò

5

Chạy ILSpy với tư cách quản trị viên đã giải quyết vấn đề này cho tôi.

Các vấn đề liên quan