We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
local array variables in debugger watch-local window not right...?
I detected a strangeness during function's debugging. Local array in Watch/local window was shows with incorrect Address and values. Is this IDE's mistake (uVision3 V3.34) or my incompetence?
____________________________________________________ small example: a) Programm's source with breakpoint: ......................................... void lcd_print (unsigned char const *string) { char AAA[5] = "11"; char * pc; pc = AAA; --> while (*pc) ......................................... b) Information in Watch/local window: ......................................... AAA |0x4000414[...] +--[0] |0x00 +--[1] |0x00 +--[2] |0x00 +--[3] |0x00 +--[4] |0x00 pc |0x400043C +--*pc |0x31
It is incomprehensible:
Why AAA and pc has different addresses? Why *pc show correct value 0x31 = '1', but AAA[0] - incorrect?
Eugeny
PS. However, function work correctly!!!
Thank for answer, Peter! As I understood, You check in sumulate mode. I tray this example in sumulate mode too (earlier I works in JTAG-debugging mode with MCBSTR9 Evaluation Board). Of course, I check the variables after "pc = AAA;" operator. But uVision 3.34 do not working properly in both modes. I get uVision 3.34 with Keil MCBSTR9 Evaluation Board and Keil JTAG-2 adapter in December 2006. Where I can get trial-version uVision 3.50b?