Freigeben über


Mike Stall's .NET Debugging Blog

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

<Previous Next>