I have worked for Microsoft since Jan 1999, starting off supporting Visual Interdev (oh the joy of those DTC’sJ) moving over to ASP.NET, making a brief stint in something called Solutions Integration Engineering and finally landing as an Escalation Engineer for .net. Somewhere around the timeframe of when ASP.NET released and the problems were getting increasingly complex on the server-side, (since we were suddenly able to do virtually anything in web-pages), I started realizing that my current way of troubleshooting issues wouldn’t suffice. I delved into the world of debugging and my eyes were opened to a whole new world of troubleshooting. Since then, I have been evangelizing windbg (the mother of all debuggersJ) to anyone I meet, even some of my friends, not in the computer business have gotten their dose of “look what you can do in here, it’s amazing” while their thoughts were probably going “cuckoo, that girl really needs to get a life”J
So to the point, why do I love the debugger so much? I love things that are black and white, my main interests are logic puzzles and billiards, if you get things wrong you know exactly why and there are strict rules for how you should do things. Much like this the debugger tells things in black and white. If your process hangs you can spend weeks on end wondering if your process is hanging because a database query is taking too long or because your boss installed a flashy screensaver that takes 100% CPU. The debugger will tell the ruthless truth, whether you like it or notJ
In my work there are a few topics that come up again and again so I decided that a blog might just be the best place to log all the tidbits that I gather along the way.
One of the worst case scenarios when you debug is that you discover a problem that requires massive re-design of the application to resolve, and/or that the system is now in production and the servers go down and the server is mission critical. Telling someone at that point that the problem could have been avoided if a different design had been chosen in the early stages of the project doesn’t do much to de-stress people, so some of the main points that I would like to impress on developers are: spend time learning the platform you are working with, spend time testing your system, spend time testing proofs of concept. It WILL pay off in the end. And!!! If you still get an unlucky break and your e-business goes down right in time for the x-mas rush, spend some time in advance on learning the basics of production level debugging so you don’t have to panic in the case of a failure.
If you have some specific areas that you would like me to talk about, don’t hesitate to tell me…
Happy debugging! May the force be with you...
I am a support professional professional in the ASP.NET group at Microsoft. I want to learn Debugging in depth and is very much impressed by your blogs..Your blogs are really awesome..
Hey Tess, I seem to remember that we didn't have much problems doing actual source level debuging for .NET via WinDbg when I was working on Main Campus, but we did have a command (.cordll) that I wasn't able to get working latter on public versions of WinDbg. It could be that I just never gave it enough time to dig around. In any case, it would be interesting to hear about it, even if just as a curiosity -- to show what is doable.
Iam very new in debugging, but iam doing my best, you seems to be more professional and good, so kindly your guidence required. Thanks
It usualy rarely happen that female are doing programming but its great to see some one at this level of Hard rock aspect of development. :)
Well, Could you please (after so much experience) list the set of tools and techniques for the peoples who have this in nature but haven't got chance working on debuging factor
When i request tools its like a black smith who know what exactly he has and works for in his toolset wheather its just a bent nail.
I know to debug is more of a nature but listing such tools + techniques + stretegies will help a lot to different peoples
I believe you will find most of what you are looking for in the debugging labs (listed on the right side bar). If you feel like this is not what you were looking for, let me know...
I've been working as a Software Engineer for about 10 years now having developed apps for a variety of platforms (mobile, windows, web etc). Yesterday, the first time in my career, I was tasked with troubleshooting a high memory issue in our teams ASP.NET app and was happy to come across your blog. Thanks to your tips, I've tracked it down to a severely fragmented heap and now have a new love for windbg. Just wanted to say a quick thanks!
Tess - You are doing an amazing work and have now inspired me to become an escalation engineer!
You have great time management skills, inspite of being an escalation engineer you manage your time very well to keep your blog updated. Keep up the good work!
I join the fun club of you :)))