Tôi muốn gỡ lỗi ứng dụng .NET không khởi động ngay lập tức (và tồn tại mà không có thông báo lỗi hoặc nhật ký), nhưng tôi không thể đính kèm trình gỡ rối vào nó vì quá trình này tồn tại gần như ngay sau khi tôi chạy nó. Tôi không có mã nguồn cho ứng dụng, vì vậy tôi không thể thực hiện "Bắt đầu gỡ lỗi". Tôi đã cố gắng sử dụng một Studio vĩ mô trực quan để bắt đầu một quá trình, gắn vào nó, sau đó phá vỡ, nhưng vĩ mô là quá chậm và vào thời điểm mà nó tìm thấy quá trình này, quá trình này đã thoát:Cách đính kèm trình gỡ lỗi khi tạo quy trình?
Imports System
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module Module1
Sub RunAndAttach()
Try
Dim dbg As Debugger3 = DTE.Debugger
Dim trans As Transport = dbg.Transports.Item("Default")
Dim sysProc As Process = System.Diagnostics.Process.Start(New ProcessStartInfo("C:\Temp\CrashingApp.exe") With {.WorkingDirectory = "C:\Temp"})
Dim proc As EnvDTE90.Process3 = dbg.GetProcesses(trans, "ALLON-PC").Item("CrashingApp.exe")
If (Not sysProc.HasExited) Then
proc.Attach()
proc.Break(False)
Else
MsgBox("Process " + proc.Name + " has already has exited.")
End If
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Sub
End Module
Có cách để đính kèm trình gỡ rối vào một quy trình mới được tạo ra, như F5 làm gì?
Cảm ơn!
Mẹo gọn gàng! Chỉ trong trường hợp của tôi, nhấn F5 sẽ chạy chương trình và sau đó nó sẽ thoát ngay lập tức. Thay vào đó, sử dụng Step Into gây ra trình gỡ lỗi ngắt ở đầu Main(). Cảm ơn! –