Crash when stepping and quiting at the same time
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 331
- Forks
- 33
- PR merge metrics
- No merged PRs in 30d
Description
Here is a new issue that gets exposed after I fix the hang issue. Steps to reproduce:
- Launch helloworld in debugger
- Hold F7 (Step into) and do not release it
- Use mouse to click the Quit button
- Observe the crash (sometimes it hangs, though)
This is not easy to trigger, since the timing window is narrow. It seems to me that one must hold the F7 button for a while and do not release it. Otherwise, this cannot be triggered. This is unlikely to happen during normal use of the debugger.
Relevant sequence of events:
- Step into on HLIL, the thread executes
DebuggerController::StepIntoIL - Quit
- While stepping into in HLIL takes some time to process (before the step into request is send to the adapter), the quit operation succeeds and all of its callback gets called.
- One of the callback sets
m_liveViewto nullptr DebuggerController::StepIntoILtries to accessm_liveViewwithout checking whether it is nullptr
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at DebuggerController::StepIntoIL and trace the quit callbacks that set m_liveView to nullptr while the HLIL step request is pending. Reproduce by holding F7 while quitting the helloworld session, then verify that the debugger no longer crashes or hangs when the operations overlap.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- devtools, reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100