Hi all,
I'm having a very troubling problem when debugging with the new version of µvision (4.11) that I didn't have with the last I was on (it was 4.03 I think). When I debug code on various platforms (working on an STM32F103 and an NXPLPC1768, both CM3), I have a lot of variables that appears "Out of scope" in the watch window.
I'd like to add that I'm at optimization level 0, I tried default but it optimized more and I had even less variables visible, and that this problem did NOT happened with the previous version of the software.
Thank you in advance for you answers.
Have you looked at the assembler produced (and single stepped through that)?
The parameter 'a' is almost certainly being passed in a register, so it's life (as far as the debugger is concerned) would be very short.
This is an example of it happening, take a look at the local watch on the right:
tof.canardpc.com/.../d134f819-2031-4cf2-8cb7-66dc78f5675e.jpg
And the assembly code:
tof.canardpc.com/.../8f91307a-5b3c-4f7d-9a65-7b6b8c1dc520.jpg
I very much suspect that is the root of the problem!
With a trivial function like that, the actual body could possibly be implemented as just one or two machine instructions - and it can be hard to line that up precisely with 'C' source lines.
Hence you might think you're "in" the function (so the variables should be in-scope), but the debugger thinks you're not quite "in" it yet - or just on the way "out" of it - so the variables are out-of-scope...
I understand your point but: - when debugging the same method with gdb I can see the variables (not the same compiler obviously but still...), - this did not happen with the previous version of µvision
Are there at lot of work when migrating a program to GDB, the GNU Project debugger?