Monday, 12 April 2010
« SOSEX v2 Now Available | Main | SOSEX v4 Update »

I’ve finally completed a new release of SOSEX.  This latest release is compatible with .NET 2.0 and 4.0, and it contains several new goodies as well as some major enhancements to existing functionality.  Here’s an overview:

Enhancements
  • .NET 4.0 support for all commands
  • !dlk now supports ReaderWriterLock as well as the existing SyncBlock functionality
  • !mk now allows you to list locals and parameters inline with the stack trace
  • !strings now supports wildcard searches and also now allows you to search user strings in module metadata
  • !mdt now supports collection expansion (currently Array, ArrayList, List, Hashtable and Dictionary)
  • !mdt now allows you to specify a maximum recursion level for the –r option,
  • !mdt is smarter about how it interprets arguments, allowing you to pass arguments in any order
  • !mdt now supports field paths, so instead of looking through a complex hierarchy, you can pass a field path explicitly (myLocal.field1.subfield, etc…)
  • !mx now provides more information for each item, including the metadata type, MethodDesc, MethodTable and field type, as applicable.
  • Many minor bug fixes
New Commands
  • !finq – List the contents of the finalization queue
  • !frq – List the contents of the f-reachable queue
  • !gch – List GCHandles
  • !rwlock – List all ReaderWriterLock instances, or list the details of a specific instance by passing an address.

Please be sure to take a look at the !help (or !sosexhelp) command, or open the readme.txt file for details, options and examples for each command.  As always, if you notice any problems or bugs, please contact me to report them.  There are actually four other new commands that I’ve withheld temporarily in order to tighten them up, so I’ll fix any reported bugs while I’m working to complete the new commands.  Expect the new commands within the next month or so.

Enjoy SOSEX v4.0!

Download: 32-bit  64-bit

Tuesday, 13 April 2010 00:20:48 (GMT Standard Time, UTC+00:00)
Thanks Steve! Looking forward to trying it out.
Tuesday, 13 April 2010 04:31:14 (GMT Standard Time, UTC+00:00)
That is great news! Thanks Steve.
Friday, 23 April 2010 20:15:54 (GMT Standard Time, UTC+00:00)
Man, This stuff is amazing especially the nested fields lookup. Thanx a lot
Tuesday, 27 April 2010 18:54:09 (GMT Standard Time, UTC+00:00)
Cool !!! Thank you very much for the update.
Friday, 28 May 2010 04:07:52 (GMT Standard Time, UTC+00:00)
hi Steve, i used the sosex v4.0 with .net fx 4.0 and it seems can not detected deadlock. the following is my sample code: if i built and ran the same code with .net 3.5 sp1, the dlk command worked prefect.


using System;
using System.Threading;

namespace DeadlockDemo
{

class Program
{
static void Main(string[] args)
{
DeadLockTest();
}


private static void DeadLockTest()
{
var dlh = new DeadLockHost();

new Thread(dlh.Bar).Start();

dlh.Foo();
}
}

class DeadLockHost
{
private readonly object _syncRoot1 = new object();
private readonly object _syncRoot2 = new object();

public void Foo()
{
lock (_syncRoot1)
{
Console.WriteLine("Foo got syncRoot1");
Thread.Sleep(1000);
lock (_syncRoot2)
{
Console.WriteLine("Foo got syncRoot2");
}
Console.WriteLine("Foo released syncRoot2");
}
Console.WriteLine("Foo released syncRoot1");
}

public void Bar()
{
lock (_syncRoot2)
{
Console.WriteLine("Bar got syncRoot2");
Thread.Sleep(1000);
lock (_syncRoot1)
{
Console.WriteLine("Bar got syncRoot1");
}
Console.WriteLine("Bar released syncRoot1");
}
Console.WriteLine("Bar released syncRoot2");
}

}
}
Monday, 31 May 2010 11:32:53 (GMT Standard Time, UTC+00:00)
Hi Steve, I've been using sosex for 2.0 framework for a while. While moving to 4.0, I've encountered an issue with both sos and sosex extensions - it denies to load, because if mscorwks issue. Specifically, it says:
Failed to find runtime DLL (mscorwks.dll), 0x80004005
Extension commands need mscorwks.dll in order to have something to do.

It really confuses me, because "lm" doesn't show that mscorwks loaded (for 2.0 apps it is listed). That, I suppose, causes such an issue. Can you suggest something on this, is possible?

Sincerely
Tuesday, 01 June 2010 20:07:11 (GMT Standard Time, UTC+00:00)
Mikalai: The runtime dll for .NET 4.0 is now clr.dll. If you are using the latest SOSEX, it works with either. If you are using the latest SOSEX v4 and it still doesn't work, please contact me so I can get a dump from you.
Steve Johnson
Tuesday, 01 June 2010 20:21:24 (GMT Standard Time, UTC+00:00)
Richard: I tried your code on my machine against both .NET 2 and 4. !dlk shows the deadlock for me. Please repro and send me the console output and a dump so I can look at it. Thanks.
Steve Johnson
Comments are closed.