Retail code debugging

Retail code debugging is one of those necessary evils. It’s difficult, but the only way to completely avoid it is to not have retail code, which unfortunately usually requires you to avoid having any customers. Anyway, I figured I would give a brief tour of what you can trust and what you can’t trust while…


Whidbey Debugger pseudo-register – $user

Today I wanted to talk about my strangest contribution to the Whidbey debugger is a new pseudo-register — $user. What is $user? First, I guess I should define what a pseudo-register is. Pseudo-registers are fake variables that can be evaluated in any of the watch windows.  The native debugger has had these forever. For instance,…


Debugging the last COM Error (SetErrorInfo/GetErrorInfo)

Well it has been a long time since I have posted. Whidbey has been taking up a lot of time lately, so unfortunately I have been unable to find the time to post. Anyway, today I wanted to talk about ole32!GetErrorInfo /ole32!SetErrorInfo. These are the APIs that COM uses to communicate detailed error messages between…


Remote Debugging without domain accounts

This blog has been on my todo list forever. I am now sitting in an airport, so I guess it is time for the procrastination is over… I want to talk about remote debugging in the following network situations: Two domains without two-way trust Two computers on a workgroup One computer on a workgroup, and…


Mike Stall has a blog Mike Stall is the VS debugger team’s best friend in the .NET Runtime (CLR). He is the dev responsible for implementing ICorDebug. The VS debugger uses ICorDebug to implement managed debugging. If you have hard core managed debugging questions, Mike is the person who knows the answer.


Using templates to convert calls to strcpy and other CRT functions

Some teams, and the debugger is definitely one of them, make heavy use of the C Runtime (CRT) string manipulation functions. Before VS 2003 shipped, we spent a lot of time converting calls from the old insecure functions, to calls to the equivalent function from strsafe.h. VS 2005 is now coming along with bigger changes….


Enabling/Disabling Script Debugging

Generally speaking, script debugging defaults to off. One of the many mistakes that we made with the script debugging architecture is that every application has their own unique way of deciding if script debugging is enabled or disabled. Classic ASP: Use IIS manager Internet Explorer, Outlook, or anything else that uses MSHTML: Use ‘Tools->Internet Options…->Advanced->Disable…


Postmortem on working from Nebraska

I have spent the last three weeks working from Lincoln Nebraska, where my wife is in school. In fact, I am typing this from my plane back home. I decided that it might be interesting to talk about my experiences working remotely. First, I would like to thank Microsoft for the opportunity to work remotely….


Configuring XP SP2 to enable remote debugging for VS 2002/2003

Soon we will get the remote debugger KB article fixed, and this blog will be useless. In the mean time… Basic steps to get remote debugging to work after installing XP SP2: Configure DCOM on the Visual Studio computer Configure Windows Firewall on both computers Configurations for special scenarios Configure DCOM on the Visual Studio…


Debugging your unhandled exception filters

Sometimes an application will decide that they would like to do something interesting with unhandled exceptions. To do this, you would use SetUnhandledExceptionFilter. Maybe you want to report the exception to some web service (example: Windows Error reporting), or maybe they want to save some state before the process dies, or maybe you want to…