A few things that could go wrong:
1. Are you sure the file that you look at is the one you compiled? Maybe you are looking at a copy that you accidentally opened instead of the current source file. You can view the location of the file by hovering the mouse over the tab title.
2. Have you used conditional compilation by excluding parts of your code through #ifdef commands? Maybe the symbols you try to view are excluded from compilation.
3. are the variables you want to view within the active scope, i. e. within the same scope as the current position of the program counter? Maybe the breakpoint hits only after the variable has run out of scope. In that case the variable is considered an undefined symbol, just like you said the watch window states.
If it's none of these, maybe you should post the section of your code showing the position of the breakpoint and the variable you want to view.
P.S.: I just recalled a tricky variant to option 3: if you define a variable within the header of a for loop, then it will go out of scope at the end of the loop! So, if you try this:
for int i = 0; i < 10; ++i)
if (myvec[i] < 0)
break;
*
You can not view the value of
i
after this loop, because it no longer exists! It's tricky because earlier versions of VS did retain such variables even affter the loop (against the rules of the C++ standard)