Mike Stall's .NET Debugging Blog

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

Quiz: can you count how many combinations ...

Here's a combinatorics quiz: If you have 2 ordered lists (lengths N, M), how many ways can they be...

Author: Mike Stall - MSFT Date: 01/28/2008

Lang.Net 2008 is coming

Lang.Net 2008 is coming up this Monday through wed (Jan 28th -Jan 30th). This is targeted at...

Author: Mike Stall - MSFT Date: 01/23/2008

Battle Simulation: size vs. smarts (part 3)

How much stupidity does it take to prevail over intelligence? I previously explored simulating...

Author: Mike Stall - MSFT Date: 01/17/2008

Battle Simulations with Iron Python (part 2)

I previously wrote about modeling RTS battles with IronPython. In this entry I'll explore a new...

Author: Mike Stall - MSFT Date: 01/12/2008

Partial Classes and future-proof vindication

A common question is "How can my tool crack the PDB to automatically determine what source file /...

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

An extra 1 gig of memory works wonders...

I had previously installed Vista on my home machine, which had 1 GB. Vista was neat, and Civ 4...

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

Zune's killer feature

Zune's killer feature (according to my 2 year old daughter) is the box. For the 4gb/8gb, the box is...

Author: Mike Stall - MSFT Date: 01/04/2008

"Managed Humans" by Michael Lopp

I just finished reading "Managing Humans" by Michael Lopp, who writes at...

Author: Mike Stall - MSFT Date: 01/03/2008

RTS Battle simulation with IronPython

I used Python to simulate Age of Empires archer battles. I wanted to be able to answer questions...

Author: Mike Stall - MSFT Date: 01/02/2008

Interview tip: what's the real question

Sometimes somebody asks a question, but the answer they're looking for is not the answer to the...

Author: Mike Stall - MSFT Date: 12/31/2007

It never works

Last night, right before falling asleep, I recall having some great idea for a blog entry. I was too...

Author: Mike Stall - MSFT Date: 12/29/2007

Merry Christmas!

.

Author: Mike Stall - MSFT Date: 12/25/2007

Grocery stores and cyclical dependency graphs

Here's a silly conversation that demonstrates a problem in resolving cyclical dependency graphs that...

Author: Mike Stall - MSFT Date: 12/19/2007

Return vs. Finally (2)

The Return statement and finally have competition. Both can are the "last" thing to execute when a...

Author: Mike Stall - MSFT Date: 12/16/2007

Real Time Strategy game for Silverlight

Check out TruckWars, a Real-Time-Strategy (RTS) game for Silverlight 1.1 by Tim that builds on the...

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

Debuggability tops MSBuild feature poll

Dan Mosely recently posted a feature poll on the MSBuild blog. Here are the results. Debuggability...

Author: Mike Stall - MSFT Date: 12/03/2007

Stateless card dealing

How many times have you had somebody deal a hand of cards and then say "um, everybody count your...

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

"This statement is false"

Saying phrases like "This statement is false" does mean you've found some fatal flaw in logic itself...

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

Learning Python

Now that I'm on the IronPython / DLR team, it seemed prudent to actually learn the Python language....

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

Don't expect customers to always run your app under a debugger

"That's ridiculous, I would never do that" you think. But there's a certain class of mistakes that...

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

Why is System.Diagnostic.Debugger class compiled in retail?

There's a good reason that methods on a "System.Diagnostics.Debugger" class are still compiled in...

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

How to add Options to Live Writer PlugIns

This entry explains how to have options associated with your Windows Live Writer plugin, including...

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

WiX Script for installing Live Writer Plugins

Here's a WiX install script to build an MSI to install a Windows Live Writer (WLW) plugin dll, by...

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

Simple Tool for text substitution plus Design questions

I wrote a simple C# app to do text substitution. It takes a (key,value) mapping and then replaces...

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

Breaking changes in ICorDebug from 1.1 to 2.0.

Here are some random notes about specific ICorDebug breaking changes between .NET v1.1 (Everett) and...

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

Paste-From-Console Live Writer PlugIn

I wrote a WLW PlugIn to paste from a console. You can download it from the Gallery here. The setup...

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

Transitioning off the CLR

After 6+ years on the CLR Debugging services, I'm going to be headed over to the Dynamic Language...

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

Trivia about the [Conditional] attribute

The System.Diagnostics.Conditional attribute has been on blog-todo list for a while, and I'm finally...

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

Quiz: What runs before Main()?

Quiz: What managed code runs before managed Main() in your program startup path? Answers: I note...

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

My daughter, the QA tester

I was on a plane with my 2.75 yr old daughter (yeah, the state-machine one). She noticed the air-jet...

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

How to tell if a function is managed code?

This is a moot point for pure C# apps, but what if you're writing in MC++ (or some other 'mixed'...

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

The debugger is not just an extension to BCL + Reflection

Don't have your non-debugger app use the debugging services just to get some cool functionality. The...

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

3 years!

I just noticed that my blog had birthday #3 (Sep 30th) . In tradition, some various stats... 384...

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

Why debugging breaks in optimized (production) builds.

You may have noticed that debugging optimized builds (eg, what you commonly get when you attach to a...

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

Debugger.Break()

System.Diagnostics.Debugger.Break() is a BCL method that causes a program to issue a User Breakpoint...

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

ICorDebugFunction is 1:1 with the IL

In CLR 1.0, there was a simple invariant between IL code blob, and native code blob. It was either...

Author: Mike Stall - MSFT Date: 09/30/2007

"Drawn to Life" and framework design

"Drawn to Life", is a Nintendo DS game that lets you draw various objects in the game, such as the...

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

What I'm reading now: 50 Rules Kids Won't Learn in School

I'm currently reading "50 Rules Kids Won't Learn in School" by Charles J. kes. (Apparently the first...

Author: Mike Stall - MSFT Date: 09/24/2007

(A==B)==(X==Y)

I used to hate the expression: (A==B)==(X==Y), but I've grown very fond of it. My prior feelings of...

Author: Mike Stall - MSFT Date: 09/20/2007

Paradigms around Debugging Memory leaks

In native code, memory is explicitly managed by the program calling Malloc()/Free() (or comparable...

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

Foreach codegen

Do you know how the following C# code compiles? foreach (int i in c) { Console.WriteLine(i); } In...

Author: Mike Stall - MSFT Date: 09/07/2007

Feature Parity vs. Scenario Parity

It can be easy to miss the forest through the trees. Sometimes there are emergent properties from...

Author: Mike Stall - MSFT Date: 09/05/2007

ICorPublish does not cross the 32/64 bit boundary

I mentioned earlier that ICorDebug does not cross the 32/64 boundary. If you want to debug a 32-bit...

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

What I'm reading now: Showstoppers

I'm reading "ShowStoppers", by G. Pascal Zachary, which describes the effort to build the first...

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

Indirection is funny

In code, unnecessary layers of indirection can be confusing and lead to bug. Do you really need to...

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

My first Windows Live Writer (WLW) PlugIn is now published on the WLW Gallery of Plugins. You can...

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

<Previous Next>