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
Empty implementation of ICorDebugManagedCallback
I have to implement the ICorDebugManagedCallback interfaces. I wrote up a stub implementation (that...
Author: Mike Stall - MSFT Date: 08/01/2006
Lessons from political bloggers
Today on MS Campus, two successful political bloggers, conservative Stefan Sharkansky and liberal...
Author: Mike Stall - MSFT Date: 07/31/2006
Upcoming compiler lab
There's an upcoming Lang.Net Symposium (Compiler Lab++) on Microsoft Campus. Kathy and Thottam have...
Author: Mike Stall - MSFT Date: 07/27/2006
MDbg / ICorDebug forum is now available!
We've just created a new public forum for answering ICorDebug and MDbg questions. Check out:...
Author: Mike Stall - MSFT Date: 07/25/2006
Caveats about managed JIT-debugging
I received some questions in the mailbag about what Debugger.Launch actually does. Debugger.Launch...
Author: Mike Stall - MSFT Date: 07/24/2006
Resolving functions and func-eval syntax
I got a question about MDbg's func-eval syntax, which brings up a nice point about function...
Author: Mike Stall - MSFT Date: 07/21/2006
You can't cast from a pointer to a managed object in the debugger
During native debugging, it's common to cast a raw pointer value to a given type. Eg, in the...
Author: Mike Stall - MSFT Date: 07/20/2006
Coffee and the L2 Cache
My wife gave me a coffee grinder for my birthday. I've come a long way from instant coffee; I've now...
Author: Mike Stall - MSFT Date: 07/15/2006
#line hidden vs. DebuggerNonUserCode attribute
I got this great question from the mailbag: "[W]hat is the relation between the "# line hidden"...
Author: Mike Stall - MSFT Date: 07/12/2006
Experiences with FxCop and wrapping the native debug API
I'm writing some managed wrappers for the native-debugging API (I expect they'll eventually become...
Author: Mike Stall - MSFT Date: 07/12/2006
Conventions for passing the arguments to a process
A process's main() function gets an array of strings for the command line args. This is string[] in...
Author: Mike Stall - MSFT Date: 07/09/2006
Working on managed wrappers for Native Debugging API
FWIW, I've been working on some managed wrappers for the native debugging API...
Author: Mike Stall - MSFT Date: 07/05/2006
Managed vs. Native debugging APIs
FxCop has a great rule (UseManagedEquivalentsOfWin32Api) to tell you about managed APIs that exist...
Author: Mike Stall - MSFT Date: 07/03/2006
Debugger.Log vs. OutputDebugString
Both Debugger.Log and OutputDebugString have some key similarities: The both log string for...
Author: Mike Stall - MSFT Date: 07/03/2006
Debugger won't properly evaluate C#s base keyword
Public Service Announcement: You may have noticed that trying to evaluate members using C#'s 'base'...
Author: Mike Stall - MSFT Date: 06/29/2006
How to build Mdbg apps
I often publish little samples in this blog based off MDbg (which generally show off the debugging...
Author: Mike Stall - MSFT Date: 06/28/2006
Rant: Xml is Code
I need to rant: If one more person brags about their class library saying "you don't have to write a...
Author: Mike Stall - MSFT Date: 06/27/2006
Random ICorDebug trivia about debugging AppDomains
I've gotten some questions about how appdomains are handled at the ICorDebug level. Here's some...
Author: Mike Stall - MSFT Date: 06/26/2006
Source posted for snapshot tool
A while ago, I wrote a sample tool to gather snapshots of callstacks. After great delay, I've posted...
Author: Mike Stall - MSFT Date: 06/26/2006
Sample code for snapshot tool
//----------------------------------------------------------------------------- // Harness to...
Author: Mike Stall - MSFT Date: 06/26/2006
Thomas Lai is now blogging!
Thomas Lai is now blogging! Thomas works on the CLR Debugging Services, along with other bloggers...
Author: Mike Stall - MSFT Date: 06/20/2006
Saved by the blog
I just passed a milestone: I just had my first experience where I desperately needed an answer and...
Author: Mike Stall - MSFT Date: 06/19/2006
Random thoughts on Bill G transition plans
You've no doubt heard that "Bill Gates said Thursday he will transition from day-to-day...
Author: Mike Stall - MSFT Date: 06/16/2006
MSDN Wiki
You've probably already read about the MSDN Wiki Beta on Soma's blog. You can now add information to...
Author: Mike Stall - MSFT Date: 06/10/2006
Managed Stack Explorer
Check out: Managed Stack Explorer. It's a tool on CodePlex that lets you automatically get stack...
Author: Mike Stall - MSFT Date: 05/17/2006
Enc APIs aren't exposed through reflection
David Srbecky asked: Can a EnC capable compiler work on top of System.Refletion.Emit? (ie. If an...
Author: Mike Stall - MSFT Date: 05/08/2006
Using a Profiler for inspection
I've gotten some questions about using a profiler to do inspection a managed process. The best blogs...
Author: Mike Stall - MSFT Date: 04/22/2006
Felice Pollano: Integrating a debugger into Reflector
Felice Pollano is working on project to make merge Reflector (an IL-->C# decompiler) and Mdbg (a...
Author: Mike Stall - MSFT Date: 04/22/2006
Is "Module Breakpoint" ambiguous?
How would you define "Module Breakpoint"? 1) "Break when module is first loaded"2) "Break each time...
Author: Mike Stall - MSFT Date: 04/03/2006
Practical MDAs in MSDN magazine
Stephen Toub writes about MDAs in MSDN Magazine (see here). Whereas I focuses more on the platform...
Author: Mike Stall - MSFT Date: 03/31/2006
Some practice interview questions
Somebody in the comments asked for some practice interview questions for a development position. So...
Author: Mike Stall - MSFT Date: 03/31/2006
How did I ever live without it?
Here are some random software things I use that really change how I work. OneNote: Word is not a...
Author: Mike Stall - MSFT Date: 03/28/2006
Getting answers to questions
I've been getting a lot of individual questions (usually via the contact form) about random things I...
Author: Mike Stall - MSFT Date: 03/27/2006
Dbg vs. Pdb files
Somebody asked me about .Dbg vs. .Pdb files. Basically, .Dbg files are the predecessor's to .pdb...
Author: Mike Stall - MSFT Date: 03/26/2006
Stop the debuggee to poke at it
In ICorDebug, most operations are only available when the debuggee is stopped. (This was asked...
Author: Mike Stall - MSFT Date: 03/22/2006
The stop count and trivia
ICorDebug maintains a stop-count, and so if you call ICorDebugProcess::Stop() twice in a row, the...
Author: Mike Stall - MSFT Date: 03/22/2006
Trivia about Set-next-Statement (SetIp)
The poor-man's version of Set-Next-Statement (aka, SetIp) is to just forcibly set the instruction...
Author: Mike Stall - MSFT Date: 03/21/2006
What to expect when you Attach, Async-Break
Don't assume that if you have a thread doing a spin-wait, that you can attach / asynchronously-break...
Author: Mike Stall - MSFT Date: 03/21/2006
"Correct" may depend on your point of view
Correctness from the debugger's perspective is very different than correctness from the end-user's...
Author: Mike Stall - MSFT Date: 03/20/2006
Looking forward to the day when free wireless is just a given
I was bored in SeaTac Airport (my flight got delayed) and so I pulled out my laptop. I wasn't sure...
Author: Mike Stall - MSFT Date: 03/18/2006
Competing with the docs:
I was reading Charles Petzold's rule "Don't even try to compete with the Docs" and it reminded me of...
Author: Mike Stall - MSFT Date: 03/16/2006
Put a config file on your debuggers
VisualStudio.Net 2003 has a config file saying that it's for V1.1 CLR. If you write your own V1.1...
Author: Mike Stall - MSFT Date: 03/16/2006
Why doesn't MDbg use generics?
If you've looked at the MDbg sources, you'll notice it looks a lot like a V1.1 app. There are few to...
Author: Mike Stall - MSFT Date: 03/14/2006
What I'm reading now (Practical .NET2 and C#2)
I've been reading through "Practical .NET2 and C#2" (by Patrick Smacchia). I finished my previous...
Author: Mike Stall - MSFT Date: 03/14/2006
The JIT does dead-code elimination in Debuggable code
The desktop CLR JIT (at least x86) does dead-code elimination, even in debuggable code. This is...
Author: Mike Stall - MSFT Date: 03/13/2006
Being a CLR dev does not mean you know everything about the CLR
I find people often assume that just being a developer on the CLR means you somehow know everything...
Author: Mike Stall - MSFT Date: 03/13/2006
Passing env vars to the debuggee
Here are two main ways a debugger can pass an environment variable to the debuggee.1. Set the var in...
Author: Mike Stall - MSFT Date: 03/12/2006