Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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