GC performing full blocking Gen2 collections under SustainedLowLatency despite there is no LowMemory notification from OS

In this post I want to share my observation of a weird behavior in GC. Background and documented behavior One can switch GCLatencyMode in order to adjust the GC behavior. According to this doc SustainedLowLatency mode should ensure that full blocking collections are only made under low memory pressure: (…) The collector tries to perform only…

1

Bug in ZipFile CreateFromDirectory – your archive can be irreparable corrupted

In this post I want to share my observation of a bug in ZipFile.CreateFromDirectory method that will yield resulting archives corrupted. Luckily this happens only for quite large source directories – and so you might not be affected at all. I’ll share my observations of limits that trigger this bug and also small code sample…

6

Why are IntelliTrace Windows and Menus missing?

Visual Studio 2010 (and 2012) Ultimate is coming with a cool feature called IntelliTrace – if you don’t know about this feature I recommend to explore it more (e.g. here http://msdn.microsoft.com/en-us/library/dd264915(v=VS.100).aspx or even better directly in your VS Ultimate ;-)). However it might happen to you that your IntelliTrace Events or IntelliTrace Calls windows are…

6

Crash in Unloaded_mydll.dll – how to find out who called unloaded dll.

The other day I happened to came across an interesting crash dump. It was clear that something called our module which was already unloaded and so whole application crashed. On the first look it was however very unclear what code in what module called our dll. This case was closed as external cause, but I…

4

StringBuilder performance issues in .NET 4.0 and 4.5

I have recently discovered interesting behavior change of StringBuilder class introduced in .NET framework 4.0 (and remaining in 4.5). There is also a easy workaround once you know the behavior. Sample code exposing the problem Let’s use the following test code: static void TestStringBuilder(bool reuse) { StringBuilder sb = new StringBuilder(); Stopwatch stopWatch = new…

2

Setting up managed code debugging (with SOS and SOSEX)

In this post I want to share some basics on how to set-up managed code debugging in windows debugger. I’ll consider that reader already know basics about how to setup windows debugging. I’ll mainly discuss details about what and how need to be loaded in order to be able to use specialized extensions for managed…

0

Setting up Windows debugging

Below I want to share a basics of setting up debugging in one of the debuggers from Debugging Tools for Microsoft Windows (WinDbg, ntsd, cdb or kd). After performing all of the recommended steps, the session should be hopefully ‘actionable’ – ready for the actual debugging (that I’ll not discuss in this post – more…

3