2019-07-25 04:23 AM
Hi,
I have noticed a little problem in the "Live Expressions" function.
The first time I open STM32CubeIDE and debug my firmware, I can see the value of all expressions previously written by me.
When I stop the debug and debug again, some expressions does'nt show the value. Instead this appears the message " Failed to evaluate expression".
The curious is that if I "rename" the expression the correct value appears again. For example, adding a space (or removing a space) at end of a expression with the message " Failed to evaluate expression" solve the problem.
This are happenning with anyone more?
This is a real bug?! How this problem can be solved?
Best regards,
DIego Volpini
2023-10-26 11:17 PM
I am facing the same problem. This is the only solution that works for now.
2024-05-21 12:46 AM
Yeah, this problem still alive. I have this and don't know how to solve.
2024-05-21 01:43 AM
The work-around is mentioned somewhere in this post. I will repeat here:
You must create a dummy global variable in your project and add it to the "Live Expressions". When you see junk values in some/all the variables, then write some value ( say 0 or 1 ) to your dummy variable. I have noticed that the values of all variables now Sync up and display the correct values in the "Live Expressions".
2024-07-28 11:15 AM
2024 now. I can't believe it the problem is still NOT solved! I'm having the same problem!!!!
2024-09-08 06:48 AM
Hallo everyone suffering from this 4 years old problem,
I experience identical problems with the ST-LINK debugger in CUBEIDE version 1.16.0 on a Win11 x64 PC, but with specific variables only! The issue started appearing after I got some experience with the STM32H723 MCU and wanted to view the values of DMA1_Streamx (where x = 0...7) components. Only with this kind of variables I have experiences, just like descibed by many users before. The appliance of some suggested tricks (increase heap and stack size, change gcc settings) did not work for me.
When I looked up the source of this group variables I found it to be a define:
#define DMA1_Stream0 ((DMA_Stream_TypeDef *) DMA1_Stream0_BASE)
that in my opinion evaluates to the pointer to the structure of 'DMA_Stream_TypeDef'. Maybe it is for people with more background knowledge understandable why the debugger is not capable to evaluate a variable with this structure? On the other hand, in some occasions it simply works for me, so what is going on? A race condition in parsing the variable names to adresses where the values are stored?
When trying to understand why my project code isn't doing what I want (a real challenge on its own) it is very annoying when the debugger shows required information only ~10% of the times, because this issue is still not solved!
Quite some time ago a ST employee showed some interest, but unfortunately this did not change the situation in our favor. How long do we have to suffer?
A bit disappointed user,
Fred Schimmel