Track objects (Make Object ID)
You can make the debugger keep track of specific objects even if they are out of the current context.
When the program is suspended by the debugger, you can assign a label to any object in the current context with Make Object ID. After that, the object will be pinned until the object is garbage-collected, or you remove the label with Remove Object ID, or until you finish the debugger session.
If a variable has a marked object as a value, its label will be displayed with the Dollar sign $
in the Debug window views.
In the example below, both book1
and book2
have the same title and the same presentation in the debugger views. So we marked book1
with the Kings_book
label:

Now, when the marked object appears in the same or other context, the variable that holds it will be shown with the corresponding label. This comes in handy when there could be multiple similar objects and you want to distinguish between them or when you track a specific object.

tip
Another way to distinguish between objects in the debugger views is to customize object presentation.
You can also set data breakpoints at properties of specific objects to break execution as soon as the their values change.
Unless marked objects are garbage-collected, you can access them even if they are out of the current context using the Evaluate dialog Shift+F9 — just make sure that the program is suspended and use the object's label prefixed with the Dollar sign as if it were a local variable name:

Assign a label
Select the desired variable in the Debug window.
Press Ctrl+K, K or select Make Object ID from the context menu. The Select object label dialog opens.
Specify the label name. Use alphanumeric characters without spaces. Optionally, click Browse
next to the preview to change the label color.
Click OK to assign the label.
Remove a label
Locate the variable that holds the marked object in the Debug window.
Press Ctrl+K, K or right-click the variable and select Remove Object IDt from the context menu.