Share via


Mike Stall's .NET Debugging Blog

Notes on Managed Debugging, ICorDebug, and random .NET stuff

Does C# intellisense read you mind?

It's cool that VS has intellisense for C# (the feature where in the middle of typing an expression,...

Author: Mike Stall - MSFT Date: 01/11/2007

You don't want to write an interop debugger.

I've had a growing number of people inquire about how to write an interop-debugger with ICorDebug....

Author: Mike Stall - MSFT Date: 01/10/2007

I've been tagged.

Tess tagged me. This seems like a good excuse to diverge from my consistent policy of work-related...

Author: Mike Stall - MSFT Date: 01/08/2007

Type-safe Managed wrappers for kernel32!GetProcAddress

Pinvoke is cool in managed code, but sometimes you need to get straight at kernel32!GetProcAddress....

Author: Mike Stall - MSFT Date: 01/06/2007

Fake attach event ordering

When you attach to a managed debuggee (via ICorDebug::DebugActiveProcess), ICorDebug generates a set...

Author: Mike Stall - MSFT Date: 12/28/2006

C# app to count #ifdef usage

Here's a little tool I wrote to count #ifdef usage in a project. It provides a summary of the...

Author: Mike Stall - MSFT Date: 12/23/2006

Embed Macros in Help?

Having to meticulously follow detailed instructions is just an accident waiting to happen. Instead...

Author: Mike Stall - MSFT Date: 12/20/2006

Measuring language complexity: Do you need a debugger?

When people are asking for a debugger for language X, practically it means that the usage of...

Author: Mike Stall - MSFT Date: 12/13/2006

Your feedback: How many types do you ref.emit into a module?

I'm looking for feedback about Ref.Emit usage patterns. When using Ref.Emit, how many types do you...

Author: Mike Stall - MSFT Date: 12/08/2006

Interview Tip: Writing test cases

If during a dev interview, you're asked to write a set of test cases for some function you wrote, be...

Author: Mike Stall - MSFT Date: 12/07/2006

What I'm reading now: "C++ Template Metaprogramming"

I'm currently reading "C++ Template Metaprogramming". It's off to a great start. The basic idea (so...

Author: Mike Stall - MSFT Date: 12/05/2006

Patrick Dussud is blogging!

Patrick Dussud, lead architect of the CLR, is blogging (as other CLR members are already pointing...

Author: Mike Stall - MSFT Date: 12/04/2006

Random comments about Sytem.Convert class

The System.Convert class is a neat little class in the BCL (mscorlib) for converting between types....

Author: Mike Stall - MSFT Date: 12/02/2006

Table of Cool .NET Tools

Here are some cool .NET tools from MSDN / codeplex, complete with Download and tutorial links. Tool...

Author: Mike Stall - MSFT Date: 11/29/2006

Marshal opaque structs as IntPtr instead of Byte[]

If you have an opaque native structure that you want to pass through managed code, consider using...

Author: Mike Stall - MSFT Date: 11/29/2006

Creative usage

I picked up a sketchpad and a 64-pack of colored pencils at a local hobby store to do so random...

Author: Mike Stall - MSFT Date: 11/28/2006

AppDomain.ProcessExit is not guaranteed to be called

The AppDomain.ProcessExit is not guaranteed to be called. It's pretty resilient and will deal with...

Author: Mike Stall - MSFT Date: 11/26/2006

Mdbg (C# debugger in C#) source sample updated

We've just updated the MDbg sample! This is a full source sample for building a managed debugger in...

Author: Mike Stall - MSFT Date: 11/22/2006

Thoughts on Vista from a non-computer person

Previously, I installed Vista on my home computer. Here are some comments from my wife. I found her...

Author: Mike Stall - MSFT Date: 11/22/2006

Viewing types with Reflection-Only

It's natural for a tool to use Reflection-Only loading to load an assembly and view the types in it....

Author: Mike Stall - MSFT Date: 11/22/2006

Hit 300 mark

I hit the 300 post mark. (I hit the 200 mark back in Feb). Some days I feel like I'm still going...

Author: Mike Stall - MSFT Date: 11/17/2006

LCG + Debuggability, and your feedback

I mentioned earlier that you can debug Reflection.Emit code. Unfortunately, Ref.Emit code can't be...

Author: Mike Stall - MSFT Date: 11/14/2006

Rename Mdbg forum to "Building Development and Diagnostic Tools for .Net"

We've renamed the ICorDebug / Mdbg forum to "Building Development and Diagnostic Tools for .Net",...

Author: Mike Stall - MSFT Date: 11/13/2006

Binary Patching tools (mspatcha, mspatchc)

Microsoft has some great binary patching tools. In my simple tests they're over twice as size...

Author: Mike Stall - MSFT Date: 11/07/2006

The Tester's dilemma: proving you can count to a million

How would you prove to a skeptic that you can count to a million (and pronounce each of the...

Author: Mike Stall - MSFT Date: 11/03/2006

Unit testing databases

Here's a cool tool on CodePlex that Tim pointed me to for anyone who needs to write unit tests on...

Author: Mike Stall - MSFT Date: 10/25/2006

Writing an RTF to HTML converter, posting code in blogs.

Visual Studio's IDE will copy code as RTF (Rich Text Format). Web browsers like HTML. So posting...

Author: Mike Stall - MSFT Date: 10/20/2006

Using Foo(...) instead of Foo(System.Type, ...)

Whenever you're passing in a parameter of System.Type that is usually determined at compile-time,...

Author: Mike Stall - MSFT Date: 10/10/2006

GCHandle.ToIntPtr vs. GCHandle.AddrOfPinnedObject

Both GCHandle's ToIntPtr and AddrOrPinnedObject take in a GCHandle and return an IntPtr. I had to do...

Author: Mike Stall - MSFT Date: 10/09/2006

Pop quiz: Who wins in finally vs. return?:

Question 1) What's the return value from this C# function: static int Test() { int val = 1; try {...

Author: Mike Stall - MSFT Date: 10/05/2006

Debugging Ngen code

You can debug ngen (aka prejitted) code from VS2005 and also have the VS2005 IDE launch ngenned...

Author: Mike Stall - MSFT Date: 10/04/2006

ICorDebugValue vs. System.Object

System.Object represents a managed object within a process. ICorDebugValue is the debugger's...

Author: Mike Stall - MSFT Date: 10/01/2006

Using CreateRemoteThread from C#

If you want to create a new thread in your process in C#, you can use Thread.Start. But things are a...

Author: Mike Stall - MSFT Date: 09/28/2006

Sample code for CreateRemoteThread in C#.

// Sample for CreateRemoteThread in C# using System; using System.Collections.Generic; using...

Author: Mike Stall - MSFT Date: 09/28/2006

How to start a console app in a new window, the parent's window, or no window

The ProcessStartInfo.CreateNoWindow property says "Gets or sets a value indicating whether to start...

Author: Mike Stall - MSFT Date: 09/28/2006

What I learned this morning...

... Don't run your disk defragmentor on your laptop when it's not plugged in. My battery went down...

Author: Mike Stall - MSFT Date: 09/14/2006

My baby, the finite state machine.

My 19-month old daughter was quite the finite state machine today. She's recently become mobile and...

Author: Mike Stall - MSFT Date: 09/13/2006

LoadClass events are usually meaningless

ICorDebug notifies a debugger when a managed class is loaded via LoadClass debug event. For...

Author: Mike Stall - MSFT Date: 09/11/2006

Iron Python 1.0 is released

You probably already read this 100 times, but Iron Python 1.0 is released. Check out Jim Hugunin's...

Author: Mike Stall - MSFT Date: 09/06/2006

How can you force clients to use your APIs properly?

It's tough to make a client use your API correctly. It's especially tough to get clients to not do...

Author: Mike Stall - MSFT Date: 09/01/2006

An example of an API versioning problem.

Here's an example of an API versioning problem. In general:Anytime you take two separate concepts...

Author: Mike Stall - MSFT Date: 08/30/2006

Fixing the MDbg / Iron Python extension...

A while ago, we had a sample of Mdbg-Python extension that let you use python to script MDbg. It was...

Author: Mike Stall - MSFT Date: 08/25/2006

Asking questions on the forums

With the new ICorDebug / MDbg forum, I've decided to temporarily disable the "Contact Me" link on my...

Author: Mike Stall - MSFT Date: 08/11/2006

Cool tool: NDepend

I just saw a free cool tool, NDepend, which analyzes .NET assemblies and lets you get neet metrics....

Author: Mike Stall - MSFT Date: 08/09/2006

<Previous Next>