Freigeben über


Mike Stall's .NET Debugging Blog

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

<Previous Next>