Monday, December 21, 2009

Visual Studio Macro for Opening a stack trace file

I often open a file and go to location from a stack trace. It gives information in the following format:
filename:line 999

Here's the macro that I'm bound to Ctrl-Shift-O (because I don't open projects from shortcuts and it is close to Ctrl-O for opening a file).

======
Sub OpenFileFromStackTrace()
Dim ret As String = InputBox("Input filename and line number (example=> c:\myfile.cs:line 321):", "Open File From Stack Trace")
If (ret = String.Empty) Then
Return
End If

Dim spl3 As String() = ret.Split(New [String]() {":line "}, StringSplitOptions.None)

DTE.ItemOperations.OpenFile(spl3(0))

Dim line As Integer = Integer.Parse(spl3(1))
DTE.ActiveDocument.Selection.GotoLine(line, False)
End Sub

================

Thursday, September 03, 2009

The case of the mysterious window popping up

At work one day my difference tool stopped working when launched from the source control system. This applies to any large tool that's launching a 3rd party tool.

The source control system did not specify what the command line it was launching. Time for a bit of reverse engineering...

1. Launch the source control tool
2. Run filemon
3. Launch the difference tool

Take a look at what filemon was trying to open. In my case it was a tool called "compare.exe".

Hmm. Why would that fail.

I ran the compare.exe from the command line (cmd.exe) and bingo it came up with the other 3rd party tool (in my case it was ImageMagick's compare.exe). As I don't use ImageMagick too much I just renamed the binary on my system to imcompare.exe and I was in the money again running my difference tool happily.