-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debugger: Stability improvements #11009
Debugger: Stability improvements #11009
Conversation
311f3f8
to
6969fe0
Compare
Prevents an use-after-free on the DebuggerWindow object
6969fe0
to
4fd1169
Compare
Updated the PR and it's now ready for review. The above bug is not fixed, but I have identified that:
Therefore, I see no reason to block this PR on this other, unrelated debugger issue. |
7678c55
to
708c25a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
708c25a Fixes the assert issue.
Everything else looks good to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, great catch!
Achievement-related changes seem fine. But the race scares me, I'd prefer we avoid that if possible. I know Silent had some fun issues debugging this, it's best to not create even more of them ;) |
f963bdc
to
895bd34
Compare
Updated the PR with some heavy-handed changes to data flow that completely breakpoint update handler and replaces it with proper Qt slots and signals. Everything breakpoints-related should now be done on the correct threads. I have tested breakpoints a bit and they appear to work fine, but please test them for regressions!!! |
Snuck one more improvement in - now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested it and the code looks good to me.
I didn't look for possible races.
I'm glad that breakpoint update handler code (that I was not proud of) was able to be removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems okay otherwise I think.
6e0e939
to
c8561ca
Compare
c8561ca
to
fd01c7e
Compare
Fixes asserts and possible crashes in release when these addresses are accessed in the debugger.
Tightens the data flow between the CPU and UI threads to resolve multiple race conditions, such as: 1. Unbinding a debug interface update CB while it's in use, causing a possible use-after-free. 2. Binding breakpoints via the disassembly widget that would read a stale local variable, and bind the breakpoint to a bogus address + probably more subtle races that are now resolved
19c2017
to
8399e4b
Compare
Description of Changes
This PR fixes numerous issues related to the debugger:
< 0xBFC00000
as invalid, fixing asserts in Debug and possible crashes in Release (by @F0bes).Rationale behind Changes
Stability good.
Suggested Testing Steps