I don't know for sure how the IDE "remembered". Too many possibilities.
The IDE has/had 2 ways of getting the data
- the broken register (never worked)
- via the internal data for the stack
For the top stack frame:
The latter is by design "not required to work", because the first should always work.
The latter is just there because there is an "exit" missing, if the first fails. (but then it's ok to be there...)
So it is not important to find why the 2nd does not always work (it isn't meant to)
Well, that is: If it did not work, because the data was not available. If the data was broken, then that is an issue.
As for the difference between your and my experience:
The latter (data availability) depends on lots of things. In the end it is a timing issue (almost like a race condition, though often a bit more predictable). Like for me it worked when the stackwindow was open.
But that part did not work for you. So there is some other factor. It is possible that whatever caused this different gets saved into the session or project.
About the "select the 2nd stack frame".
When you select any stackframe, other than the top, then the above rules change.
- The register is never used
- the stack data is always used
But, then the data should always be available.
- The above "not working" meant "not working, because data not avail".
- So if for the 2nd frame the data is avail, then it should work.
That is why I asked the question.
- Until now, I can just assume that when you had the stack open, but it still did not work => it was timing (data not available)
- But in theory, maybe something was wrong with that data (a 2nd independent bug)
Checking if watches work in the 2nd frame, would tell for sure which one it is.
Otherwise you or someone find out one day, when they really need it.
(I kind of assume (again..., I assume a lot) that it works for most, because no one complained yet, and at least when I debug I use the stackframes all the time.
But since on the machine I logged into, the behaviour is a little different from yours, I can't rely on my tests alone.
In the end, most bugs get fixed when they get reported.
- For Windows and Linux I have limited automated tests.
- On Windows I use the debugger a lot, so it gets heavily tested
- On Linux I use it a little, so it gets some testing
- On Mac, I relay entirely on others reporting issues (exception like now, when I have a report and jump over my shadow and log into a Mac)
However, there are a few people in the developer team who use Mac, and they obviously to debugging. So there is at least some regular use of the debugger on Mac.