Debugging - vNext, Mono, xUnit ... On Linux - Part 2

Last time we found an issue with the threading model and the execution context that caused the xUnit custom thread manager to attempt to join on itself causing an infinite wait condition. This time the execution context is breaking us in an entirely new way. In this session I will show you two ways to find the issue using GDB. Hang on because we’re going deep in this one.

Debugging - vNext, Mono, xUnit ... On Linux - Part 1

Earlier this week I was browsing twitter and I came across a post by @davidfowler (a dev on the ASPNET team) asking for help with mono. I’m by no means an expert but I thought I could help none the less. I was able to provide some context around the errors the team was seeing for two separate issues. Today I’ll walk through some of the steps I took to debug the first issue.

Test in Production (with Fiddler)!

While this does seem like an April fools joke, that wasn’t the intention. However, that doesn’t stop me from feeling somewhat clever. Anyway, one of our internal teams started complaining about their web pages being slow. Well, yeah, okay; what do you mean by slow? Just slow or SLOOOOOW. Turns out it was the latter. Using the IE and Chrome profiling tools I could see that there was a lot of time being spent in a jQGrid selector. We wanted to test out some code changes, but had to wait to cut a change record. This would have cost us a few days.

Debugging - NetExt WinDbg Extension

I was poking around for some WinDbg extensions and stumbled upon a new one that I hadn’t seen before. NetExt, is written and maintained by Rodney Viana an Escalation Engineer with Microsoft. I downloaded it and went through his tutorials on how to use it (available on the CodePlex site). I must say it’s pretty nice. The best feature is that it uses the .NET Debugging interfaces as well as a mix of managed code.

Debugging - "Exception has been thrown by the target of an invocation"

The other day I had some issues starting up Visual Studio. I got presented with a modal dialog that said "Exception has been thrown by the target of an invocation". I wasn’t sure why, so I tried it again, and again, and the once more for good measure. Turns out, it wasn’t the way I was clicking the shortcut link. Of course, this is a problem as Visual Studio is my primary tool. Let’s see what was causing this. [Environment]::SetEnvironmentVariable(“Path”, $outpath, “Machine”) [procmondl]: https://technet.microsoft.com/en-us/library/bb896645.aspx [psscordl]: http://www.microsoft.com/en-us/download/details.aspx?id=21255 [sosmsdn]: https://msdn.microsoft.com/en-us/library/bb190764%28v=vs.110%29.aspx