BUG: 'CXX0017: Error: symbol not found' Compiling with /Zi

ID: Q115709

1.00 1.50 WINDOWS kbtool kbbuglist

The information in this article applies to:

SYMPTOMS

Attempting to use the CodeView Display Expression command (?) when debugging code which was compiled with the /Zi switch may cause CodeView to generate the following error message:

   CXX0017: Error: symbol not found

CAUSE

The compiler is not emitting the correct symbolic information for the symbol.

RESOLUTION

You can sometimes avoid the problem by compiling with the /Z7 switch.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed above. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

The sample code shown below can be used to illustrate the problem. To reproduce the problem, do the following:

1. Compile the sample code with the /Od and /Zi switches.

2. Load the resulting executable into CodeView.

3. Set a breakpoint on the final closing } of the source code.

4. Run to the breakpoint.

5. Open the Command window in CodeView and enter the following

   command:

   ?Function( x.a == 1 && ::X() == 5 ),s

6. Press enter.

This should cause CodeView to call Function() with the result of the expression ( x.a == 1 && ::X() == 5 ) as an argument. The value returned by Function() should be displayed as a string. However, CodeView instead issues the CXX0017 error message.

Compiling the same code with /Od /Z7 and following steps 2 through 6 listed above causes CodeView to correctly display the string "PASSED" as the return from Function().

Sample Code

/* Compile options needed: /Od /Zi
*/ 

char * Function( int Condition );

int X(void) { return 5; }

void main( void )
{
    struct X { int a; };
    X x;
    x.a = 1;

    {
        struct X { int b; };
        X y;
        y.b = 2;
    }
}

char * Function( int Condition )
{
    if( Condition )
        return "PASSED";
    else
        return "FAILED";
}

Additional reference words: 1.00 1.50 4.10 8.00 8.00c KBCategory: kbtool kbbuglist KBSubcategory: CLIss Keywords : kb16bitonly

Last Reviewed: July 23, 1997