PRB: Debugger Does Not Load DLL Using DATA MULTIPLE

ID: Q128602

1.00 1.50 1.51 WINDOWS kbtool kbprb

The information in this article applies to:

SYMPTOMS

When you debug a 16-bit Windows DLL under Codeview for Windows or Visual C++ integrated debugger, the following error message may be generated:

   Could not load debuggee, library requires separate data
   segment for each task[6].

CAUSE

When an application has implicitly loaded a DLL, the DLL is loaded before the application. If the DLL cannot load for any reason, the application (the debuggee, in this case) will not load.

This error in the DLL means that the MULTIPLE flag is used in the DATA statement in the .DEF file of the DLL. This must be SINGLE or else the DLL will not load.

RESOLUTION

On the DATA statement in the .DEF file of the DLL, change the MULTIPLE flag to SINGLE and relink the DLL.

MORE INFORMATION

To reproduce this problem, use the SELECT example in the \MSVC\SAMPLES\SELECT directory. Change the DATA statement in SELECT.DEF to MULTIPLE instead of SINGLE.

NOTE: It is possible to create a DLL using DATA MULTIPLE in the .DEF file; however, Microsoft does not recommend doing this.

Additional reference words: 1.00 1.50 1.51 KBCategory: kbtool kbprb KBSubcategory: WBDebug

|*                             noupdate
Keywords          : kb16bitonly kbDebug kbide 
Version           : 1.00 1.50 1.51
Platform          : WINDOWS

Last Reviewed: July 21, 1997