PowerShell / PowerShellEditorServices

A common platform for PowerShell development support in any editor or application!
MIT License
632 stars 215 forks source link

SetValue for nested field throws "Unable to cast object" #2170

Open Fantoom opened 2 months ago

Fantoom commented 2 months ago

Prerequisites

Summary

Setting nested field value throws Unable to cast object of type 'Microsoft.PowerShell.EditorServices.Services.DebugAdapter.VariableDetails' to type 'Microsoft.PowerShell.EditorServices.Services.DebugAdapter.VariableContainerDetails'.

image

The code below should be causing the problem.

https://github.com/PowerShell/PowerShellEditorServices/blob/41fce39f491d5d351b4ac5864e89857ec070e107/src/PowerShellEditorServices/Services/DebugAdapter/DebugService.cs#L390

PowerShell Version

Name                           Value
----                           -----
PSVersion                      7.4.3
PSEdition                      Core
GitCommitId                    7.4.3
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Editor Version

Visual Studio Code
Version: 1.91.1 (user setup)
Commit: f1e16e1e6214d7c44d078b1f0607b2388f29d729
Date: 2024-07-09T22:06:49.809Z
Electron: 29.4.0
ElectronBuildId: 9728852
Chromium: 122.0.6261.156
Node.js: 20.9.0
V8: 12.2.281.27-electron.0
OS: Windows_NT x64 10.0.19045

PowerShell Editor Services Version

Major  Minor  Build  Revision
-----  -----  -----  --------
3      20     1      0

Steps to Reproduce

$val = [PSCustomObject]@{
    NestedField = "Test"
}
Write-Host $val
while ($true) {
    Write-Host $val   
}

1) Put breakpoint on line 4 (Write-Host $val) 2) Start debugging 3) Open "Local" scope in Variables tab 4) Find $val and change NestedField value

Visuals

No response

Logs

No response

andyleejordan commented 2 months ago

I wonder if this is releated to https://github.com/PowerShell/vscode-powershell/issues/5013 (which I think is due to an issue of the scope not updating internally).

andyleejordan commented 2 months ago

Err I don't think it's the same but I'm adding it to my related bugs list.