BUG: Compiler Fails to Generate Symbolic Info for ELSE IFLast reviewed: July 17, 1997Article ID: Q65744 |
6.00 6.00a 6.00ax 7.00 | 6.00 6.00a | 1.00 1.50
MS-DOS | OS/2 | WINDOWSkbtool kbbuglist The information in this article applies to:
SYMPTOMSIf the sample code below is compiled for debugging (/Zi) with the products listed above, the debugger does not stop at breakpoints placed on the ELSE IF line of code. Also, any attempt to step onto the line using the trace or step command will skip over this line as if no executable code was associated with it.
CAUSEThe compiler is not generating the correct line number information.
RESOLUTIONTo work around the problem, place the "else" and "if" on separate lines. For example:
else if (i==7)instead of
else if (i==7) STATUSMicrosoft has confirmed this to be a problem in the products listed at the beginning of this article. It is not likely that the behavior will change because the problem is easy to work around and is not common.
MORE INFORMATIONAs can be seen in the debugger by switching into mixed source/assembly mode, there is executable code associated with the ELSE IF statement. And, if a breakpoint is placed on one of the assembly instructions associated with the ELSE IF line, execution can stop on that instruction demonstrating that the code is being executed.
Sample Code
/* Compile options needed: /Zi /Od */ void main(void){ int i=100; if (i==2); else if(i==7); /* cannot stop on this line */}
|
Additional reference words: 1.00 1.50 6.00 6.00a 6.00ax 7.00 8.00 8.00c
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |