Debugging COM+ Applications
Because the Visual Basic 6
debugger is very limited, debugging COM+ applications is not a
trivial task. The biggest limitation is that the debugger cannot
attach itself to a running process; it only knows how to debug code
that is being interpreted and running under the VB 6 process. This
means that you cannot debug COM+ server applications in Visual Basic,
since these applications run inside DllHost.exe
.
A second limitation is that it can debug only single-threaded
processes, which means that you cannot debug things like the STA
thread pool. Note that you can debug all these things using the
Visual C++ debugger. Therefore, one option for debugging VB COM+ code
is to use the Visual C++ debugger, which is discussed as the second
of the following debugging options; another option is to use trace
messages by calling the Win32 OutputDebugString
API.
Option 1: Use the VB Debugger
VB offers you limited debugging support
for COM+ applications by simulating a COM+ library application
environment. In order to offer you debugging support, VB does the job
of DllHost.exe
and acts as a surrogate process.
Because VB treats your application as if it were a library
application, debugging support is limited to features for library
applications—you cannot debug server-only application features
(see Chapter 7 for a complete list of server-only services). You also cannot debug the way your objects are created in different threads. This means that if you mark a component ...
Get COM+ Programming with Visual Basic now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.