DCSIMG
SELA Open House: Production Debugging of .NET Applications - All Your Base Are Belong To Us

All Your Base Are Belong To Us

Mostly .NET internals and other kinds of gory details

SELA Open House: Production Debugging of .NET Applications

Yesterday I delivered a 3-hour session on production debugging at the Castra Center in Haifa. The room was set in the middle of a beautiful art gallery, and the projector was playing my slides on a wall surrounded by paintings. Amidst this cozy atmosphere I was talking about some nasty bugs and how to discover them in a production environment.


Source: Ezy.co.il

Among the topics covered:

Using IntelliTrace in production—we saw an undocumented way to launch IntelliTrace from the command line, capture trace files, and analyze them later in Visual Studio.

Capturing and analyzing dump files—we used Task Manager and Procdump to capture dumps, and then opened them in Visual Studio.

Memory leak detection—we analyzed application memory usage with VMMap and then diagnosed the exact source of a managed memory leak using a memory profiler.

Deadlocks—we approached a hung UI application by capturing a dump and analyzing the deadlock situation with the SOSEX !dlk command. Then, we took a look at another application exhibiting a more complex deadlock with threads and mutexes and used Wait Chain Traversal to resolve it.

If you attended the session, please download the slides and demos and try to walk through some of them on your own. Other resources that may help are linked at my post on debugging resources.

If you haven’t been there, you can always come to my .NET Debugging tutorial day at the upcoming SDP, which will cover these topics and many others—and will be accompanied by hands-on labs to make sure you leave equipped with practical tools for diagnosing your own application errors.


I have been recently posting short updates and links on Twitter as well as on this blog. You can follow me: @goldshtn

Comments

No Comments

Leave a Comment

(required) 

(required) 

(optional)

(required) 


Enter the numbers above: