microsoft / microsoft/vscode-cpptools

Support "set-next-statement" with cppdbg

Open
#1,025 31 comments 55 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

debugger Feature Request
Dominant language
TypeScript
Stars
6.2k
Forks
1.7k
Avg merge
14h 46m
Merged PRs (30d)
61

Description

The ability to modify the instruction pointer to point a different location without running any code is an extremely useful debugging feature in C/C++. I'd like to request this feature in the toolset.

Visual Studio has an implementation of this, referred to as "Set Next Statement" in the UI. It is normally done by either dragging the yellow arrow indicating the currently executing line of code, or by right clicking a line and choosing "Set Next Statement".
https://msdn.microsoft.com/en-us/library/y740d9d3.aspx#Anchor_4

It appears the protocol for this is already implemented in VS Code.
https://github.com/Microsoft/vscode-debugadapter-node/issues/28
https://github.com/Microsoft/vscode-debugadapter-node/pull/45

Related: https://github.com/Microsoft/vscode/issues/12514

Contributor guide

Open the contributing guide

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 cppdbg adapter and compare its debug request handling with the VS Code debug adapter protocol references linked in the issue. Confirm how “Set Next Statement” is represented, then verify that the extension can request the change and that the instruction pointer moves without executing intervening code.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, typescript
Domain
devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.