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
F5 vs. Ctrl-F5
In VS, F5 will launch your application under the debugger. Under the debugger, you'll hit...
Author: Mike Stall - MSFT Date: 09/22/2005
Process X can't tell if Process Y is being managed debugged.
From the mail bag: Is there a way to determine if a managed debugger is already attached to a given...
Author: Mike Stall - MSFT Date: 09/20/2005
Going from IL to Source
Question from the mail bag: I am trying to get some information on what I can do usefully with the...
Author: Mike Stall - MSFT Date: 09/19/2005
ICorDebug reentrancy
ICorDebug (ICD) in managed-only debugging mode does not need to be a reentrant API. In other words,...
Author: Mike Stall - MSFT Date: 09/19/2005
Types of Names
We've had some design discussions where we've come across 4 types of string names. These terms came...
Author: Mike Stall - MSFT Date: 09/14/2005
Out-of-band events and Mixed-mode debugging
Interop-debugging splits all debug events into "In-band (IB) " and "Out-of-band (OOB)". Inband...
Author: Mike Stall - MSFT Date: 09/13/2005
IL offset 0 vs. Native offset 0
Within a function, offset 0 into the native code stream corresponds to the very first native...
Author: Mike Stall - MSFT Date: 09/08/2005
MC++ / IJW codegen for Native structures in IL
When MC++ compiles an "unmanaged" class into IL (from IJW), it actually compiles the class into an...
Author: Mike Stall - MSFT Date: 09/07/2005
Managed C++ codegen for new, array manipulation, delete
Managed C++ (MC++) code generation is a cool accomplishment. I think it's another good testimony to...
Author: Mike Stall - MSFT Date: 09/03/2005
How can I tell if I'm interop-debugging?
Sometimes I'm debugging and I want to make sure that I'm actually interop-debugging and not...
Author: Mike Stall - MSFT Date: 09/03/2005
How to embed IronPython script support in your existing app in 10 easy steps
Previously, I added IronPython scripting support to a real existing application, MDbg (a managed...
Author: Mike Stall - MSFT Date: 09/01/2005
Adding IronPython scripting engine to Mdbg
I hear IronPython is a great managed scripting language to embed in other managed apps, so I thought...
Author: Mike Stall - MSFT Date: 08/31/2005
Sample Python script for Mdbg-Python extension
#----------------------------------------------------# Python Script for MDbg...
Author: Mike Stall - MSFT Date: 08/31/2005
Sample code for MDbg-IronPython extension
//----------------------------------------------------------------------------- // Simple extension...
Author: Mike Stall - MSFT Date: 08/31/2005
The importance of fortifying your subsystems.
In Writing Solid Code, Steve Maguire warns to "fortify your subsystems". This is especially...
Author: Mike Stall - MSFT Date: 08/30/2005
What's on my blog-todo list.
At this point, I've got what seems to be an endlessly long list of things I'd like to eventually...
Author: Mike Stall - MSFT Date: 08/28/2005
Sample code for PDB 2 XML tool
// NOTE this version is now out of date.// UPDATED VERSION IS AVAILABLE in the MDBG DISTRIBUTION.//...
Author: Mike Stall - MSFT Date: 08/25/2005
ICorDebugStepper and using ICorDebugStepper2::SetJMC
We added Just-My-Code (JMC) stepping (the ability to step through just your code and skip code...
Author: Mike Stall - MSFT Date: 08/23/2005
Size of Visual Studio
Ever wonder how large Visual Studio is? This public comment from the MSDN feedback gives some good...
Author: Mike Stall - MSFT Date: 08/23/2005
Sample code for Plagiarism Searcher tool
Here's my sample code for a tool to catch blog plagiarism that I described earlier. In retrospect,...
Author: Mike Stall - MSFT Date: 08/22/2005
Using the clipboard as input for console tools.
The clipboard can be a very handy source of input for certain console tools. I've written some...
Author: Mike Stall - MSFT Date: 08/22/2005
Sample code to execute MSN searches from C#
For kicks, I started writing a tool to use internet searches to automatically catch plagiarism. The...
Author: Mike Stall - MSFT Date: 08/21/2005
Tool to catch plagiarism
If you copy somebody else's blog entry verbatim, credit the original author and link back to the...
Author: Mike Stall - MSFT Date: 08/21/2005
Why is bad and easy intro for Cascading Style Sheets
I embarrassed to admit I hadn't used CSS before. I googled it, this tutorial came up, I found it...
Author: Mike Stall - MSFT Date: 08/19/2005
Auto-attach to child process is not supported in managed-debugging
Native-only debugging allows you to debug child processes. In other words, you can debug process A,...
Author: Mike Stall - MSFT Date: 08/16/2005
How should a generic method be displayed?
I've heard several different opinions about how the debugger should display a generic method in the...
Author: Mike Stall - MSFT Date: 08/12/2005
Nesting C#'s yield
C#'s yield keyword is sure neat, but I notice it only lets you yield a single item. It does not let...
Author: Mike Stall - MSFT Date: 08/12/2005
MDbg Sample is updated for Beta 2 and RTM
The Mdbg (a managed debugging written in pure C#) sample, which includes full source, has now been...
Author: Mike Stall - MSFT Date: 08/10/2005
You can't get a mixed-mode callstack from inprocess.
You can't get a full-mixed (both managed+ native) stack of a thread within your own process. You can...
Author: Mike Stall - MSFT Date: 08/10/2005
Harness that Attach instead of Launch
I've given sample code for MDbg-based harnesses that launch an app and then print all loaded modules...
Author: Mike Stall - MSFT Date: 08/08/2005
TextReader based off C# Yield
Let's say you want to implement a text stream (via TextReader) over an arbitrary data store. For...
Author: Mike Stall - MSFT Date: 08/08/2005
On why C#'s "abstract-override" is so cool:
Good language design usually results in a few well defined simple primitives that can be combined...
Author: Mike Stall - MSFT Date: 08/07/2005
Jonathan Keljo has started a blog!
Jonathan Keljo has started a blog! Jonathan is a Program Manager (PM) on the CLR (which means he...
Author: Mike Stall - MSFT Date: 08/04/2005
More caveats about #line
I posted here about how you can use #line in the C# compiler to associate C# code with some other...
Author: Mike Stall - MSFT Date: 08/03/2005
What my dog taught me about race conditions
I have a black Labrador named Sofie. She's about 2 and a half now, but still a puppy at heart....
Author: Mike Stall - MSFT Date: 08/01/2005
Simple example of an API design flaw.
Here’s a simple example of an API design flaw in ICorDebug. (ICorDebug is the API that Visual Studio...
Author: Mike Stall - MSFT Date: 08/01/2005
Correction: you can't reasonably instantiate your own ICorDebug
There’s a significant problem for 3rd-party hobbyists trying to implement their own ICorDebug: how...
Author: Mike Stall - MSFT Date: 07/31/2005
Simple harness to print exceptions in an app
Several people have asked how to write something that runs some executable under a harness and then...
Author: Mike Stall - MSFT Date: 07/28/2005
Using ICorDebugProcess::HasQueuedCallbacks
The native debugging APIs (like kernel32!WaitForDebugEvent), dispatch one debug event at a time. In...
Author: Mike Stall - MSFT Date: 07/27/2005
Debug support for arbitrary state-machines
I mentioned here that if your language compiles to IL, then you get free debugging support with...
Author: Mike Stall - MSFT Date: 07/27/2005
Source-level step-in is not well defined.
One of the things that causes us grief is that source-level step-in (F11 in VS) is not a...
Author: Mike Stall - MSFT Date: 07/26/2005