FIX: SQL Debugger Stops Working (158978)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Enterprise Edition 4.2, when used with:
    • the operating system: Microsoft Windows NT

This article was previously published under Q158978

SYMPTOMS

After working for a while, the SQL Debugger starts to skip breakpoints set in SQL code.

The Event Viewer log on the server reveals the following error message:
CreateDispatch failed (Class not registered). Check to make sure
Automation manager is running on debugger machine.

CAUSE

There is a bug in Autprx32.dll (version 4.00.2415) that shipped with Visual C++ Enterprise Edition, version 4.2, that causes leaks of thread local storage indices each time it completes a load and unload cycle.

There is a per process limit of 64 thread local storage indices on Windows NT.

While remote SQL debugging is in process, Autprx32.dll is loaded and unloaded on the server. It is unloaded each time the number of remote debugging sessions hits zero.

The debugger starts to skip breakpoints set in SQL code after approximately 25 load/unload cycles of Autprx32.dll.

RESOLUTION

To resolve this problem, stop and restart the SQL Server.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ version 5.0.

MORE INFORMATION

This problem only happens during remote debugging (when Visual C++ and SQL Server reside on different computers). It doesn't happen during local debugging (when Visual C++ and SQL Server reside on the same computer).

Modification Type:MajorLast Reviewed:10/24/2003
Keywords:kbBug kbDebug kbEEdition kberrmsg kbfix kbinterop kbSQLProg KB158978