Vector35 / Vector35/debugger

Poll the state of the target during launch

Open
#457 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement hang Impact: Medium
Dominant language
C++
Stars
331
Forks
33
PR merge metrics
No merged PRs in 30d

Description

Previously, the launch process is synchronous, which is problematic, since if the operation breaks, it hangs the debugger. I have recently changed it to async (in various commits, e.g., d972a36748861e4c9c6f24d686e2895f3ebe61a5). However, this is also not perfect since there is a possibility that after we send the launch request, we never hear back from the backend. This also hangs the debugger.

Although normally the debug adapter should either report a success (e.g., target stopped), or a failure (failure to connect), but it could just keep working on it and does not respond in a reasonable time. For example, when we typed a wrong host while connecting to a remote host. Althogh eventually the network request would timeout and fail, but it might take 30 seconds and the debugger appear hang during the process.

We should change the code logic to poll the status repeatedly after we send the launch request. This allow us to control the time we wish to wait for the target. And we can also report a "progress" on the operation.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the asynchronous launch path described in the issue, including the request sent to the backend and the target-status response. Implement repeated status polling with a controllable wait and progress reporting, and consider the work done when delayed, failed, and successful launches no longer leave the debugger apparently hung.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
devtools, reverse-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.