起動時にすぐに失敗し、エラーメッセージやログなしで存在する.NETアプリケーションをデバッグしたいと思いますが、実行した直後にプロセスが存在するため、デバッガをアタッチできません。私はアプリのソースコードを持っていないので、私は "デバッグを開始"することはできません。私は、プロセスを開始し、それに接続し、破るためにVisual Studioのマクロを使用してみましたが、マクロが遅すぎると、それはプロセスを見つけるまでに、プロセスがすでに終了しました:プロセスの作成時にデバッガを接続する方法は?
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
ありますF5のように、新しく作成されたプロセスにデバッガを接続する方法はありますか?
ありがとうございます!
素敵なトリック!私の場合、F5を押すとプログラムが実行され、すぐに終了します。代わりに、Step Intoを使用すると、Main()の先頭でブレークが発生しました。ありがとう! –