Mike Stall's .NET Debugging Blog
Notes on Managed Debugging, ICorDebug, and random .NET stuff
Chatting about debugging?
If you're at the Microsoft campus at the upcoming compiler-lab and want to chat about ICorDebug or...
Author: Mike Stall - MSFT Date: 03/10/2006
Is this a good or bad?
Pinvoke.Net is a great site, and I was wondering whether to be happy or sad. On the bright side,...
Author: Mike Stall - MSFT Date: 03/10/2006
New CLR blogger: Vance Morrison
Vance Morrison, CLR Jit guru, and now Perf -Architect (succeeding Rico) is blogging. Vance has an...
Author: Mike Stall - MSFT Date: 03/10/2006
Doing Detach with ICorDebug
Detaching a managed-debugger is somewhat complicated at the ICorDebug API level. In a...
Author: Mike Stall - MSFT Date: 03/09/2006
Jan is on MSDN TV talking about MDbg
Jan Stranik is on MSDN TV talking about MDbg, the managed-debugging sample written in C#. See the...
Author: Mike Stall - MSFT Date: 03/08/2006
MDbg, Managed-debugging, and 64 bit
V2 CLR added support for 64-bit (amd64 and ia64), and that includes managed-debugging support. So a...
Author: Mike Stall - MSFT Date: 03/08/2006
"You can't have too much chocolate"
I find it's more difficult to prove things about natural language than about well-defined specified...
Author: Mike Stall - MSFT Date: 03/07/2006
What does a debugger author need to do to support func-eval?
I've mentioned func-eval (aka property eval) is evil for end-users; but it's also evil if you want...
Author: Mike Stall - MSFT Date: 03/05/2006
Why don't the managed Debugging APIs expose the Finalizer thread?
That's a fair question. Part of the answer is we don't believe people could use it properly. The...
Author: Mike Stall - MSFT Date: 03/02/2006
Feedback on debugging optimized (managed) code?
We're looking at ways to improve debugging managed-optimized code (eg, compiled with /o+), and would...
Author: Mike Stall - MSFT Date: 03/01/2006
Why can't you detach in interop-debugging?
Matt Pietrek noticed you can't detach while interop-debugging (aka "mixed-mode") in VS. Short...
Author: Mike Stall - MSFT Date: 03/01/2006
The cost of context switching
If you think context switching activities is cheap, then just try saying two sentences; and then try...
Author: Mike Stall - MSFT Date: 02/21/2006
Modules vs. Assemblies from the managed debugger's perspective
While managed assemblies may be very interesting from the loader and deployment perspective, they...
Author: Mike Stall - MSFT Date: 02/17/2006
IFEO and Managed-debugging
Be careful of Image File Execution Options (IFEO) with managed debugging - it won't work like you...
Author: Mike Stall - MSFT Date: 02/16/2006
Sample Mdbg extension
Here is a template for playing around with an extension for the MDbg sample (Mdbg is the managed...
Author: Mike Stall - MSFT Date: 02/14/2006
Living with the consequences.
Sometimes we think we can make a decision, but it turns out the decision is already made for us by...
Author: Mike Stall - MSFT Date: 02/10/2006
TV Reruns (past the 200 mark)
My TV-savvy friends tell me that there's some magic number of TV episodes that means you finally...
Author: Mike Stall - MSFT Date: 02/09/2006
ICorDebug failure codes
ICorDebug has many different ways of saying "failure". The full list is everything that starts with...
Author: Mike Stall - MSFT Date: 02/09/2006
About CORDBG_E_OBJECT_NEUTERED
Sometimes ICorDebug APIs will return CORDBG_E_OBJECT_NEUTERED. If you're using MDbg, COM-interop...
Author: Mike Stall - MSFT Date: 02/08/2006
Design Implications from boring details
You can discern a lot of information about an API from what appear to be subtle or irrelevant...
Author: Mike Stall - MSFT Date: 02/08/2006
Impossible vs. Insufficiently Clever
I find people will often say something is impossible, when really they just aren't s mart enough to...
Author: Mike Stall - MSFT Date: 02/06/2006
Viewing the current Exception in the debuggeer
VS (and mdbg) expose the $exception pseudo-variable which shows you the most recent exception....
Author: Mike Stall - MSFT Date: 02/03/2006
Random ICorDebugThread trivia
Here's random information about ICorDebugThread that I hope eventually makes it into MSDN: 1. The...
Author: Mike Stall - MSFT Date: 02/01/2006
Fun with yield, generics, and foreach
We all know that you can use C#'s foreach keyword to iterate through all items in an enumeration....
Author: Mike Stall - MSFT Date: 01/30/2006
MDbg UI Threading, round 2
The STA/MTA threading problem is (hopefully) fixed in the latest MDbg winforms Gui. (which also has...
Author: Mike Stall - MSFT Date: 01/27/2006
You can't do Edit-and-Continue with Interop-debugging on.
Somebody asked on the forums about Edit-and-Continue (EnC) in mixed mode. You can't use managed EnC...
Author: Mike Stall - MSFT Date: 01/26/2006
When More is less
Sometimes more is less. You may do more work to add a feature that turns out to get in the customers...
Author: Mike Stall - MSFT Date: 01/26/2006
Mdbg IronPython Extension updated for Beta 1
You probably heard that Iron Python Beta 1 was released. It has a small (but very worthy) breaking...
Author: Mike Stall - MSFT Date: 01/25/2006
Multiple steppers on 1 thread and other trivia
ICorDebug has a nicely abstracted "Stepper" object, via ICorDebugStepper (I talked more about that...
Author: Mike Stall - MSFT Date: 01/24/2006
Oh, yeah!
As a ship-gift for shipping VS2005, I got my copy of VS2005 "Everything Edition" (Ok, it's not...
Author: Mike Stall - MSFT Date: 01/23/2006
Sudoku Solver and Omniscient debugging
Let me make an analogy between debugging a program and solving a Sudoku. Sudoku is a...
Author: Mike Stall - MSFT Date: 01/22/2006
XML Diff Tool
Here's a webpage (courtesy of ASP+) that compares two XML files (eg, Xml Diff, Xml Patch). It also...
Author: Mike Stall - MSFT Date: 01/21/2006
Click Once rocks.
I've been reading up on ClickOnce and it is a very useful thing for easily deploying simple winforms...
Author: Mike Stall - MSFT Date: 01/20/2006
You need Source Files to do source-level debugging
I've had several people ask me "if my managed app and pdb are both in memory, can the managed...
Author: Mike Stall - MSFT Date: 01/17/2006
Trivial RSS Writer
Recently, I've been going through the standard fatherhood ritual of trying to setup of a webpage to...
Author: Mike Stall - MSFT Date: 01/14/2006
Writing colorized text to RichTextBox
You may have noticed I got carried away making everything a RichTextBox in the latest MDbg GUI....
Author: Mike Stall - MSFT Date: 01/13/2006
Debugabbility with Roundtripping Assemblies
I've gotten several questions about debugabbility IL round-tripping. Round-tripping is where you...
Author: Mike Stall - MSFT Date: 01/13/2006
Partition of ICorDebug
The ICorDebug API (the API for debugging managed apps) is about 70 total interfaces. Here is how I'd...
Author: Mike Stall - MSFT Date: 01/04/2006
Happy New Year!
Happy New year! My wife took our Christmas tree down, so I guess that's also my que to take my...
Author: Mike Stall - MSFT Date: 01/03/2006
Do you want to work on the CLR?
So we've just shipped VS2005 and CLR (.NET) 2.0. It's an awesome product, and we're gearing up for...
Author: Mike Stall - MSFT Date: 12/29/2005
Merry Christmas!
Merry Christmas! (This post brought to you courtesy of Community Server's "publish at future date"...
Author: Mike Stall - MSFT Date: 12/25/2005
A SymWriter sample is coming...
Reading managed PDBs is a common request, and the PDB-->XML sample does that nicely. I've had a...
Author: Mike Stall - MSFT Date: 12/21/2005
Check out CLR Profiler 2.0
FYI, in case you haven't heard from everybody else saying the same thing a month earlier, CLR...
Author: Mike Stall - MSFT Date: 12/17/2005