Skip to content

Lifetime of variableReference after setVariable #438

Closed

Description

While implementing setVariable for gdb, I came across a strange scenario.

Suppose there is some variable that has structure, so it has reported a non-zero variableReference. Next, the client changes the value of this variable by sending setVariable request (using the variable's parent and the variable's name). However, the new value does not have any children -- so it would report variableReference as 0. (This scenario can happen, e.g., in Rust debugging, where some variants of an enum may hold a value and some may not.)

In this situation, the original variableReference of the changed variable is no longer valid. However, nothing in the specification actually says this.

If any children of the variable were fetched, they may also have been assigned a non-zero variableReference, which are now invalid. This sort of thing can also happen if an assignment removes elements from a vector.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions