Automatyczne podpinanie debugger’a
2 March, 2012-Debugging, Visual Studio
Dzisiaj chciałem podzielić się sztuczką, jak można automatycznie podpiąć się do procesu. Pracując nad aplikacjami webowymi mamy często potrzebę przedebugowania procesu iis, bądź jakiegoś napisanego przez nas plugina, np. Silverlight. Można to ręcznie zrobić poprzez okiekno Attach to process. Jednak na dłuższą metę jest to strasznie niewygodne i czasochłonne.
Na pomoc mogą nam przyjsć makra dostepne w VS. Poniżej przedstawiam kod, który umożliwia podpięcie się do iis i przeglądarki chrome. Należy otworzyć sobie edytor makr i go tam wkleić.
Ja mam ponadto zdefiniowany skróty klawiszone, odpowiednio Ctrl+1 i Ctrl+2
Public Module Attach Sub AttachToChrome() AttachTo("chrome.exe", "Silverlight") End Sub Sub AttachToIIS() AttachTo("w3wp.exe", "Managed (v4.0)") End Sub Sub AttachTo(ByVal name As String, ByVal engine As String) Try Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default") Dim dbgeng(1) As EnvDTE80.Engine dbgeng(0) = trans.Engines.Item(engine) For Each p As EnvDTE80.Process2 In dbg2.GetProcesses(trans, "localhost") If p.Name.EndsWith(name) And Not p.IsBeingDebugged Then p.Attach2(dbgeng) End If Next Catch ex As System.Exception MsgBox(ex.Message) End Try End Sub End Module