Debugger: Fix instruction pointer for good #11909
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Although #11893 made this problem consistent as ShowPC() is called in master unconditionally. But this has always used to be a problem - when wandering in memory, sometimes most unexpectedly, the instruction pointer of the debugger went to thread PC. Once thread state has been changed (reasons vary greatly), ShowPC() has been called and the debugger bounded back to PC.
This PR makes the debugger able to distinguish when we want to stroll in memory and when we want to view the current code the thread executes by disabling auto-branching to PC when the user has scrolled or clicked on "Go To Addresss". This is re-enabled whenever the user pauses the thread, requested an instruction stepping or clicked "Go To PC".