Sign In
Mike Stall's .NET Debugging Blog
Notes on Managed Debugging, ICorDebug, and random .NET stuff
Blog - Link List
Other Blogs
Andy Pennell's Blog
GreggM's Blog
Steve's Blog
Tim's .NET blog
Energy Policy
CLR blogs
Rick Byers (CLR)
List of all CLR blogs
David Broman (Profiling)
Thomas Lai's blog
Other links
All about MDbg
What's new in v2.0?
Who am I?
ICorDebug/MDbg Forums
Contact me?
Translate This Page
Translate this page
Powered by
Microsoft® Translator
Options
RSS for posts
Atom
RSS for comments
OK
Search
Advanced search options...
Search In:
Everything
Blogs
Forums
People
Groups
Places
Pages
Date range:
All Time
Last Year
Last 6 Months
Last 3 Months
Last Month
Last Week
Last Two Days
Tags
Compilers & Languages
Design
dlr
Edit-And-Continue (EnC)
Family
FuncEval
ICorDebug
Interop (mixed-mode)
linkfest
MDbg
Non-work
Pages
Python
Quiz
Random
random .net
reading
Sample Code
Silverlight
Testing
This should be in MSDN
Troubleshooting
versioning
Whidbey (V2.0)
Windows Live
Archive
Archives
November 2011
(1)
September 2011
(1)
December 2010
(1)
September 2009
(2)
July 2009
(1)
May 2009
(1)
February 2009
(1)
November 2008
(1)
June 2008
(1)
May 2008
(2)
April 2008
(3)
March 2008
(5)
February 2008
(2)
January 2008
(10)
December 2007
(7)
November 2007
(5)
October 2007
(16)
September 2007
(8)
August 2007
(12)
July 2007
(9)
June 2007
(5)
May 2007
(7)
April 2007
(4)
March 2007
(6)
February 2007
(5)
January 2007
(11)
December 2006
(9)
November 2006
(13)
October 2006
(9)
September 2006
(10)
August 2006
(6)
July 2006
(13)
June 2006
(10)
May 2006
(3)
April 2006
(4)
March 2006
(31)
February 2006
(16)
January 2006
(18)
December 2005
(11)
November 2005
(23)
October 2005
(12)
September 2005
(22)
August 2005
(31)
July 2005
(10)
June 2005
(7)
May 2005
(4)
April 2005
(5)
March 2005
(9)
February 2005
(16)
January 2005
(6)
December 2004
(3)
November 2004
(4)
October 2004
(14)
September 2004
(2)
February, 2006
MSDN Blogs
>
Mike Stall's .NET Debugging Blog
>
February, 2006
Posts
Subscribe via RSS
Sort by:
Most Recent
|
Most Views
|
Most Comments
Excerpt View
|
Full Post View
Mike Stall's .NET Debugging Blog
How bad threading design affects the user
Posted
over 6 years ago
by
Mike Stall - MSFT
12
Comments
I can't help but notice awful threading designs manifested in some apps (which will remain nameless). Here are some random grievances I have with these apps: 1. Don't block the UI thread, especially not on file or network access . When you block the...
Mike Stall's .NET Debugging Blog
The cost of context switching
Posted
over 6 years ago
by
Mike Stall - MSFT
2
Comments
If you think context switching activities is cheap, then just try saying two sentences; and then try interleaving those two sentences. For example, I can say "I like kites" and "puppies are cute" in under 2 seconds. But to interleave them ("I puppies...
Mike Stall's .NET Debugging Blog
Should multiple instances of an app share the same process?
Posted
over 6 years ago
by
Mike Stall - MSFT
1
Comments
I have a grievance with some programs that host many separate instances (main windows) hosted by a single process. On the plus side , you can get some good perf wins from this. One process can host many windows. (I think of this as the evolution of MDI...
Mike Stall's .NET Debugging Blog
Modules vs. Assemblies from the managed debugger's perspective
Posted
over 6 years ago
by
Mike Stall - MSFT
2
Comments
While managed assemblies may be very interesting from the loader and deployment perspective, they don't really have much interesting for debuggers. The debugger is far more concerned with modules: - the key debugging functionality is associated with modules...
Mike Stall's .NET Debugging Blog
IFEO and Managed-debugging
Posted
over 6 years ago
by
Mike Stall - MSFT
7
Comments
Be careful of Image File Execution Options (IFEO) with managed debugging - it won't work like you expect. IFEO lets you set some registry goo such that when you launch a target app (specified by a registry key name), a debugger (specified by a string...
Mike Stall's .NET Debugging Blog
Sample Mdbg extension
Posted
over 6 years ago
by
Mike Stall - MSFT
4
Comments
Here is a template for playing around with an extension for the MDbg sample (Mdbg is the managed debuggeer written in C#). It adds an "Addition" command to MDbg that adds two numbers. Not very exciting, but it shows the plumbing. You can download the...
Mike Stall's .NET Debugging Blog
When can't you do Edit-And-Continue?
Posted
over 6 years ago
by
Mike Stall - MSFT
8
Comments
In .Net 2.0, we wanted to focus managed Edit-And-Continue (EnC) resources on the core-scenarios so that we could make those as good as possible. One significant resource was testing: if you think about what it means to really test EnC, you can probably...
Mike Stall's .NET Debugging Blog
Living with the consequences.
Posted
over 6 years ago
by
Mike Stall - MSFT
0
Comments
Sometimes we think we can make a decision, but it turns out the decision is already made for us by the consequence of earlier choices. Mathematics is filled with great examples. One of my favorites is: e πi = -1 (that's e^pi*i == -1). (See proof from...
Mike Stall's .NET Debugging Blog
Passing Property values by reference
Posted
over 6 years ago
by
Mike Stall - MSFT
16
Comments
I was wondering how well properties were integrated into C#. For example, C# lets you use += with the properties. It's easy enough to convert: MyProperty += 4 to MyProperty = MyProperty + 4 However, C# won't let you pass a property in as a ref parameter...
Mike Stall's .NET Debugging Blog
TV Reruns (past the 200 mark)
Posted
over 6 years ago
by
Mike Stall - MSFT
5
Comments
My TV-savvy friends tell me that there's some magic number of TV episodes that means you finally have enough unique episodes to viably show re-runs. I wonder what that number is for blogging? I bet that some of those high volume bloggers could probably...
Mike Stall's .NET Debugging Blog
ICorDebug failure codes
Posted
over 6 years ago
by
Mike Stall - MSFT
1
Comments
ICorDebug has many different ways of saying "failure". The full list is everything that starts with "CORDBG_" in CorError.h. There are a lot of very specific HRs to describe specific scenarios. For example, CORDBG_E_IL_VAR_NOT_AVAILABLE will tell you...
Mike Stall's .NET Debugging Blog
About CORDBG_E_OBJECT_NEUTERED
Posted
over 6 years ago
by
Mike Stall - MSFT
5
Comments
Sometimes ICorDebug APIs will return CORDBG_E_OBJECT_NEUTERED. If you're using MDbg, COM-interop will convert this to throwing an exception. This means that the object is "logically dead". Since somebody is holding an outstanding reference to it, we...
Mike Stall's .NET Debugging Blog
Design Implications from boring details
Posted
over 6 years ago
by
Mike Stall - MSFT
2
Comments
You can discern a lot of information about an API from what appear to be subtle or irrelevant details For example, each ICorDebug object has a logical parent. (See here for a brief explanation of the different ICorDebug interfaces). Here's a chart...
Mike Stall's .NET Debugging Blog
Impossible vs. Insufficiently Clever
Posted
over 6 years ago
by
Mike Stall - MSFT
11
Comments
I find people will often say something is impossible, when really they just aren't s mart enough to figure it out. Physicists (and the Discovery channel) love pointing this out about time-travel: No law of physics, except for perhaps the law about...
Mike Stall's .NET Debugging Blog
Viewing the current Exception in the debuggeer
Posted
over 6 years ago
by
Mike Stall - MSFT
1
Comments
VS (and mdbg) expose the $exception pseudo-variable which shows you the most recent exception. (kudos to Shaykatc for mentioning this a year ago). Debugger authors can implement this with: HRESULT ICorDebugThread::GetCurrentException([out] ICorDebugValue...
Mike Stall's .NET Debugging Blog
Random ICorDebugThread trivia
Posted
over 6 years ago
by
Mike Stall - MSFT
5
Comments
Here's random information about ICorDebugThread that I hope eventually makes it into MSDN: 1. The managed CreateThread callback comes at the first bit of managed code that a thread runs. (I think this is a bad for these reasons , and instead it should...
Page 1 of 1 (16 items)