Microsoft constantly upgrade DbgHelp.dll to provide an improved, richer debugging API. Software
Verification use DbgHelp.dll to provide debugging information about the application under test. Some of
the APIs we use are only available in more recent versions of DbgHelp.dll.
On Windows 2000 and Windows XP, Windows File Protection comes into play. How straightforward the installation,
depends on your machine and how it is setup. If your machine does not have the backup operating system files on it, ready for a
reinstall, then you will not have problems. If your machine does have the backup operating system files on it, you will encounter
problems.
DbgHelp.dll is not installed by default on Windows NT. Windows NT does not have Windows File Protection.
Consequently, installing DbgHelp.dll on Windows NT is straightforward.
On Windows 2000 machines, the current version of DbgHelp.dll needs to be upgraded as it does not have all the APIs required by
our debugging tools. As such the comments on this page may apply to you if you are installing our software tools on a Windows 2000
machine.
On Windows XP machines, the current version of DbgHelp.dll does not need to be upgraded. At present installations of our software
on Windows XP machines is straightforward - DbgHelp.dll does not need to be upgraded.
We have modified our license program to check for the correct version of DbgHelp.dll and to deliberately overwrite the
c:\windows\system32\dllCache\dbgHelp.dll copy of dbghelp.dll so that Windows File Protection cannot restore
c:\windows\system32\dbgHelp.dll.
When Windows notices that both the files have changed, it asks you for the installation media (CD/DVD) so that it can restore the files.
You can choose to cancel the restoration so that the more recent version of DbgHelp.dll is used. Unfortunately when your machine
has the backup installation files already on the hard disk, no installation media is needed and Windows silently restores the
files without asking you if this is what is desired.
We have modified our products so that for systems where the above situation happens, the correct version of DbgHelp.dll will
always be used, o long as your application is not stored in the Windows System directory</B>. Even if a manual inspection of c:\windows\system32\dbgHelp.dll shows that c:\windows\system32\dbgHelp.dll has not been upgraded, our tools will still use the correct dbghelp.dll version installed with the product.
Updating DbgHelp.dll is an obvious thing to do. However, even Microsoft's own Debugging tools download fails to upgrade DbgHelp.dll.
Microsoft's most recent Debugging tools download is available from http://www.microsoft.com/ddk/debugging/installx86.asp.
This is a rare occasion where the technology designed to prevent "DLL Hell", actually causes it by preventing you from upgrading DbgHelp.dll in the system directory (where it is most likely to be loaded from for any given application). DbgHelp.dll is completely backwards compatible, so we are confused as to why Windows File Protection prevents this file from being upgraded.