Pelles C forum

C language => Beginner questions => Topic started by: gaurav9991 on December 13, 2010, 02:47:47 PM

Title: why it doesn't execute that line ?
Post by: gaurav9991 on December 13, 2010, 02:47:47 PM
i have added a break point at a line but while debugging it gives me an error saying that the line can not be executed. the whole program works fine. please see the attached screenshot.

thank you






Title: Re: why it doesn't execute that line ?
Post by: TimoVJL on December 13, 2010, 04:43:33 PM
Optimizer put that variable into register.
If you look it in debugger with Show disassembly you see it in eax.

EDIT:
Code: [Select]
75:
76: top = -1;
00401160               or              dword ptr [top],-FF
77: flag = 0;
78:
79: for (i = 0; expression[i] != '\0'; i++)
00401164               xor             ebx,ebx
00401166               jmp             004011D5
{
if (isbracket(expression[i]))
00401168               movzx           eax,byte ptr [expression+ebx]
...

89: {
90: flag = 1;
91: break;
004011CD              mov             eax,00000001
004011D2              jmp              004011DE
92: }
...
Without optimization or volatile int flag you can step to that line too.
Title: Re: why it doesn't execute that line ?
Post by: gaurav9991 on December 14, 2010, 05:39:16 AM
i am not getting what you are saying. Can you explain it in more detail? Thank you