Category Archives: Software Development

Creating Stack Traces with MDbg

Recently I have written about the Managed Stack Explorer. In the meantime MDbg (.NET Framework Command-Line Debugger) is my favorite tool for creating stack traces of running .NET applications in customer or test environments.

Download: MDbg_2.1.zip (412 KB)

Usage:

  1. Start MDbg.exe (if you want to trace a process that is running in 32 bit compatibility mode in a 64 bit environment, use MDbg32.exe).
  2. Enter “a” to list all running .NET processes and their process IDs.
  3. Enter “a <ProcessID>” (e.g. “a 1234″) to attach the debugger to a specific process.
  4. Enter “fo w” to display stack traces of all threads within the attached process.
  5. Enter “de” to detach the debugger from the process.

Example:

Managed Stack Explorer

To easily get stack traces of a running .NET application I was searching for a small tool and found the Managed Stack Explorer from Microsoft. Unfortunately it was not maintained anymore since 2006 and thus didn’t support Windows 7 and 64 bit. I fixed these issues and built a version 1.01. It currently only can trace .NET 2/3/3.5 applications and not .NET 4 applications.

Download: ManagedStackExplorer-1.0.1.zip

I mostly use the tool from the command line:

  1. List process IDs (needed for step 2):
    MSE /p
  2. Dump stack traces of all threads from a certain process to a text file (1234 is a placeholder for the process ID):
    MSE /p 1234 /s > c:\temp\StackTraces.txt

The package now additionally contains a MSE32.exe. Use it if you want to monitor an application that is running in 32 bit compatibility mode on a 64 bit OS.

TeamCity for Free

Recently TeamCity 3.0 was released. It has a bunch of new features, but the best of all: There is a free version now. And the free version already is quite powerful: up to 20 users, 20 build projects and 3 build agents. That is really a cool marketing strategy, because now there are no reasons anymore, why not to start with Continuous Integration, if even a easy-to-use software is for free.

You find where mp3 music download on perssonal computer, You need download mp3 music from online mp3 archive

Short, Shorter, Shortest

Three C# code snippets with the same meaning…

Variant 1: Using a full if/else clause:

Variant 2: Using the ?/: conditional operator:

Variant 3: Using the ?? operator

I did not know about the ?? operator, until Resharper 3 suggested to use variant 3 instead of variant 2 :-)

Performance of Case Insensitive Hashtables

I wrote a small test, comparing the performance of case sensitive and case insensitive hashtables in .NET. The result is, that the case sensitive hastable is 3 times faster than the case insensitive hashtable …mmmh, quite a difference!

Case sensitive – 527 ms:
new Dictionary<string, string>()

Case insensitive – 1297 ms:
new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase)

Source Code