Intolerant
Sep. 23rd, 2011 11:16 pmWell, I think I've tracked down what the problem with debugging my application is. Microsoft has decided to help me out.
See, if an application does bad things in Windows 7 or Windows Server 2008 R2, it gets put into the penalty box of using the Fault Tolerant Heap. Well, I've been running my applications under the Visual Studio 2005 debugger on Windows Server 2008 R2. The reason I'm doing this is -- surprise! -- they have bugs. They have crashed, which is what I expected would happen, which is why I'm trying to debug them.
But now, Microsoft has thoughtfully put my applications into the penalty box. This means that they run about 20 to 30 times slower than they normally would. This makes them essentially impossible to debug.
There are numerous methods for disabling the Fault Tolerant Heap either in toto or for particular applications on Windows 7. These methods don't appear to work on Windows Server 2008 R2.
I am not happy.
See, if an application does bad things in Windows 7 or Windows Server 2008 R2, it gets put into the penalty box of using the Fault Tolerant Heap. Well, I've been running my applications under the Visual Studio 2005 debugger on Windows Server 2008 R2. The reason I'm doing this is -- surprise! -- they have bugs. They have crashed, which is what I expected would happen, which is why I'm trying to debug them.
But now, Microsoft has thoughtfully put my applications into the penalty box. This means that they run about 20 to 30 times slower than they normally would. This makes them essentially impossible to debug.
There are numerous methods for disabling the Fault Tolerant Heap either in toto or for particular applications on Windows 7. These methods don't appear to work on Windows Server 2008 R2.
I am not happy.
no subject
Date: 2011-09-24 02:01 pm (UTC)no subject
Date: 2011-09-24 02:24 pm (UTC)no subject
Date: 2011-09-26 04:27 pm (UTC)The phrase "half-baked feature" comes to mind...
no subject
Date: 2011-09-24 06:48 pm (UTC)no subject
Date: 2011-09-24 08:11 pm (UTC)To disable Fault Tolerant Heap
Date: 2011-09-26 03:49 am (UTC)To disable FTH completely.
To disable Fault Tolerant Heap entirely on a system, set the REG_DWORD value [HKLM\Software\Microsoft\FTH\Enabled] to 0.
After changing this value, restart the system. FTH will no longer activate for new applications.
Or you can reset the FTH tracking list via a command for temporary debugging. (Must be running cmd with elevated privileges):
C:\Rundll32.exe fthsvc.dll,FthSysprepSpecialize
MSDN reference: http://msdn.microsoft.com/en-us/library/dd744764%28VS.85%29.aspx
Re: To disable Fault Tolerant Heap
Date: 2011-09-26 03:56 am (UTC)Neither appear to work on Windows Server 2008 R2. There are reports that these methods don't work on Windows 2007 either, but that's not the system that I'm using.
I set the registry value -- I had to add the FTH key, because it did not exist on the system that I was on according to regedit -- and rebooted. Nothing changed and the debugger still showed that I was accessing the Fault Tolerant Heap.
Then I tried the rundll32 method. This would have worked much better if my system had fthsvc.dll on it. It doesn't according to both rundll32 and a full-system search of the hard disk.
0 for 2.
This did not improve my mood. :)