Mike Stall's .NET Debugging Blog
Notes on Managed Debugging, ICorDebug, and random .NET stuff
My wish: CLR as gaming scripting engine for Civilization
I'm a big fan of Sid Meier's Civilization series. One thing I would love to see is for them to use...
Author: Mike Stall - MSFT Date: 07/25/2005
Problem with .maxstack in IL-roundtripping tools
I previously posted a tool to allow inline IL in C# / VB.Net. At the IL level, the CLR needs to know...
Author: Mike Stall - MSFT Date: 07/20/2005
A common problem: forgetting to call ICorDebugAppDomain::Attach
I notice one of the most common issues folks hit when they try to write their own managed debugger...
Author: Mike Stall - MSFT Date: 07/19/2005
It's been a while
I notice it's been a while since I blogged last. I'm still here - we've just been really focused on...
Author: Mike Stall - MSFT Date: 07/17/2005
How to do a source-level step (eg, F10)
I compared source-level stepping perf between Everett and Whidbey here. In both cases, the step...
Author: Mike Stall - MSFT Date: 06/23/2005
Interop-stepping is 400 times faster in Whidbey over Everett
We’ve made Interop-debugging (aka “mixed-mode debugging”) much faster and more stable in Whidbey...
Author: Mike Stall - MSFT Date: 06/20/2005
#line hidden and 0xFeeFee sequence points
Sometimes you may have functions that you don’t want a debugger to step into (such as 3rd-party...
Author: Mike Stall - MSFT Date: 06/19/2005
MSDN feedback rocks.
I've had great experiences with MSDN responding to feedback and improving the docs.At the bottom of...
Author: Mike Stall - MSFT Date: 06/15/2005
ICorDebug is coming to MSDN…
Today, ICorDebug is not documented on MSDN, even though it’s a public API. Your best bet is a few...
Author: Mike Stall - MSFT Date: 06/06/2005
Updating MDbg GUI for Beta 2
I had a sample GUI extension for Mdbg Beta 1. However, it doesn’t build with Mdbg Beta 2 because: 1)...
Author: Mike Stall - MSFT Date: 06/03/2005
Mdbgcore.dll and linking IL
Mdbg is now included in the Whidbey Beta 2 SDK as a tool. The source is not actually included in the...
Author: Mike Stall - MSFT Date: 06/02/2005
How not to organize your mail
I get a lot of mail each day, and often a lot of the mail requires me to do some sort of work to...
Author: Mike Stall - MSFT Date: 05/26/2005
Please send Watson Error Reports when an app crashes!
Dr. Watson (aka “Microsoft Error Reporting”) is the facility that sends Microsoft an error report...
Author: Mike Stall - MSFT Date: 05/23/2005
Roger Wolff on Implementing ICorDebug for TinyCLR
I talked here about implementing ICorDebug to reuse existing debuggers (such as VS). Roger Wolff did...
Author: Mike Stall - MSFT Date: 05/12/2005
Quiz: What's wrong with this code?
What's wrong with the following code? This is real code taken verbatim from Cordbg (see...
Author: Mike Stall - MSFT Date: 05/08/2005
MDbg and Beta 2
VS Beta 2 has shipped. The MDbg binaries are now included in the beta 2 sdk. (Kudos to Rick for...
Author: Mike Stall - MSFT Date: 04/26/2005
A step backwards
The MS blogs were recently upgraded from .Text to Community Server. Unfortunately, the new Community...
Author: Mike Stall - MSFT Date: 04/15/2005
Feedback on the ICorDebug API?
Do you write Managed debuggers? Do you use the ICorDebug API? We're designing V3 of ICorDebug and...
Author: Mike Stall - MSFT Date: 04/06/2005
MS Blog Sites have upgraded to Community Server
The MS blog sites have upgraded to Community Server. Practically, that means there are some random...
Author: Mike Stall - MSFT Date: 04/02/2005
C# and Equals() in V2.0 versus V1.0.
Here’s some wacky trivia: In v1.1, C# evaluates 3f.Equals(3) to False. In v2.0, it evaluates to...
Author: Mike Stall - MSFT Date: 03/23/2005
Caveats about System.Diagnostics.StackTrace
The .Net frameworks provides the System.Diagnostics.StackTrace class which allows you to get a stack...
Author: Mike Stall - MSFT Date: 03/20/2005
Why you can’t debug mscorwks when interop-debugging
Interop (aka mixed-mode) debugging allows you to debug both the managed and unmanaged portions of...
Author: Mike Stall - MSFT Date: 03/15/2005
Clearly Document Object Lifespans
I’ve started commenting on API design lessons we’ve learned from mistakes in ICorDebug. I previously...
Author: Mike Stall - MSFT Date: 03/14/2005
Quiz about Object.Equals()
I posted a quiz about C# equality here. It focused on equality via operator== and had questions like...
Author: Mike Stall - MSFT Date: 03/12/2005
Answers to C# Equality quiz
Here are answers and commentary for the quiz that appeared here. The quiz is what do each of the C#...
Author: Mike Stall - MSFT Date: 03/09/2005
Quiz about C# and object equality.
Here’s a silly little C# pop-quiz about equality. Given a local variable x declared of type ‘int’,...
Author: Mike Stall - MSFT Date: 03/06/2005
Managed Debugging doesn’t support Fibers
Although managed-debugging definitely supports multi-threaded debuggees, it does not support...
Author: Mike Stall - MSFT Date: 03/01/2005
Don’t do “complicated” work in Release().
BradA has been talking about API design guidelines, which reminds me of a bunch of subtle API design...
Author: Mike Stall - MSFT Date: 02/27/2005
Debugging any .Net language
The CLR is a cross-language platform, so it follows the CLR-debugging services are also...
Author: Mike Stall - MSFT Date: 02/23/2005
Tool to allow inline IL in C# / VB.Net
C# doesn’t support inline IL. As an experiment, I wrote a post-compiler tool that allows primitive...
Author: Mike Stall - MSFT Date: 02/21/2005
3rd-parties and Edit And Continue (Part 2: Debuggers)
I recently blogged about what’s involved for 3rd-parties doing Edit-and-Continue (EnC), where I...
Author: Mike Stall - MSFT Date: 02/19/2005
3rd-parties and Edit-and-Continue (Part 1: Editors + Compilers)
I’ve said before that any 3rd party debuggers can add Edit-And-Continue (EnC) support, and now I...
Author: Mike Stall - MSFT Date: 02/17/2005
Rick Byers has started a blog!
Rick Byers has started a blog (actually, he's had it for about a week now)! Check out...
Author: Mike Stall - MSFT Date: 02/15/2005
Easily passing Managed strings to Unmanaged code (round 2)
My previous blog entry was about passing Managed strings to unmanaged code. Not being very...
Author: Mike Stall - MSFT Date: 02/14/2005
Hardmode vs. Softmode
User-mode debugging can be split into 2 models: Hardmode and Softmode. Hardmode means using the...
Author: Mike Stall - MSFT Date: 02/09/2005
Compiler Lab Results
Microsoft has been having a .Net compiler lab from Feb 7 to Feb 9. It looks like it’s been going...
Author: Mike Stall - MSFT Date: 02/08/2005
Source for a C# compiler written in pure C#.
For anybody looking for the full source to a bootstrapping C# compiler, today’s your lucky day. A...
Author: Mike Stall - MSFT Date: 02/06/2005
Source is available for MDbg Winforms GUI!
The source for the Winforms GUI extension to MDbg is now available as a sample. (Sorry it took so...
Author: Mike Stall - MSFT Date: 02/04/2005
Why you can’t do Edit-and-Continue on Dynamically generated code
I gave a brief example of how you can debug dynamically generated code (e.g., code generated via...
Author: Mike Stall - MSFT Date: 02/04/2005
Debugging Dynamically Generated Code (Reflection.Emit)
The CLR supports the ability to generate code at runtime (Reflection.Emit). This is great for the...
Author: Mike Stall - MSFT Date: 02/03/2005
Implementing ICorDebug to reuse existing debuggers?
I usually talk about people writing debuggers to consume the ICorDebug API and debug CLR...
Author: Mike Stall - MSFT Date: 02/01/2005
What is Interop-Debugging?
(This is an excerpt from an internal document I wrote explaining what is Interop-Debugging (aka...
Author: Mike Stall - MSFT Date: 01/28/2005
Finding where unmanaged exceptions came from
Sometimes you’re looking at the callstack that’s in a handler after an exception was thrown. This is...
Author: Mike Stall - MSFT Date: 01/18/2005
How to get a V2.0 ICorDebug object
I think the biggest breaking change in the ICorDebug API is how we deal with versioning. Managed...
Author: Mike Stall - MSFT Date: 01/15/2005
Code Gen flags while Debugging
I ranted here that Debuggers shouldn’t affect behavior. V1.1 had some fundamental violations of this...
Author: Mike Stall - MSFT Date: 01/11/2005