Hovering a variable name while in paused mode shows the value of that variable name if there is such a variable in the current stack frame.
Steps to reproduce:
1. Start debugging.
2. Pause execution.
3. Move to a different file.
4. Hover a variable with the same name as one of the variables in the current stack frame.
The value of the variable is shown, as if the current stack frame belonged to that piece of code.
Something else. Perhaps the tooltip used when not debugging should be shown, so I can see the inferred type of the variable. This was what I wanted when I noticed this at least :)
The debugger could fix this by being smarter about the local resolve results it gets back from the editor's resolver.
The simple fix would be to check the resolve result's method, and if it's not the current selected frame's method (or if the current frame is anonymous, the parent frame's method, etc), skip value resolution. Similarly, for member resolve results it would check that the type was the current frame's type. It would then be more accurate, but not as helpful as it could be.
A more advanced solution might be to search all threads' stacks and find a frame executing that method/type, then resolve the local/member from that frame. Obviously if multiple frames were executing that method, it would prefer the selected frame, or the frame closest to it, and if multiple threads were executing the method it would prefer the selected thread.
This is still an issue on Xamarin Studio 6.2