Prevent a possible assert in the debugger when a thread detaches #1283
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.
When a new thread is attached to the VM, the debugger will add it to the
thread_to_tls
hash table. When that thread detaches, it will beremoved. Once the thread is attached, if a client is debugging, the
client can use the
CMD_THREAD_GET_FRAME_INFO
command to ask fordetails about that thread.
This is a possibility that the thread detaches before the
CMD_THREAD_GET_FRAME_INFO
command is processed, so the thread may notexist the the
thread_to_tls
hash table any more.This is a race condition, but is a valid state, so instead of asserting,
the debugger agent should indicate to the client that the thread no
longer exists, using
ERR_UNLOADED
.