PowerShell / PowerShell/vscode-powershell

Cannot Set Breakpoints When Remote Debugging PowerShell

Open
#4,531 7 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Debugging Issue-Bug
Dominant language
TypeScript
Stars
1.9k
Forks
547
PR merge metrics
No merged PRs in 30d

Description

Prerequisites
  • I have written a descriptive issue title.
  • I have searched all open and closed issues to ensure it has not already been reported.
  • I have read the troubleshooting guide.
  • I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
  • I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
  • If this is a security issue, I have read the security issue reporting guidance.
Summary

I am attempting to use VSCode for remote editing and debugging PowerShell files following this guide. I am able to run and attempt to debug my remote file after opening with psedit <filename>, but it appears breakpoints do not work as expected. It appears VSCode opens a file on my host machine with the path of the remote file (which does not exist on the host) and tries to attach the debugger to that. It will respect the original breakpoint set before it ran initially and I can even see variables on the left side, but I do not have the ability to alter breakpoints on the file or inspect variable values by hovering over them.

PowerShell Version
Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      22621  963
Visual Studio Code Version
1.77.3
704ed70d4fd1c6bd6342c436f1ede30d1cff4710
x64
Extension Version
ms-vscode.powershell@2023.4.0
Steps to Reproduce
  • Open VSCode, create a new file, set file type to PowerShell
  • Wait for integrated console to come up, type in the following:
Enter-PSSession -ComputerName <IPAdress> -Credential $credObject
New-Item test.ps1
psedit test.ps1
  • Paste or write whatever code you want to execute and then CTRL + S
  • Set a breakpoint after our variable assignment and hit F5 to debug. This will attempt to open a file on the host with the path of the remote file. This file does not exist. It will also remove the breakpoint from the original remote file and put it on this file.
  • We can now no longer create new breakpoints or hover over values.
Visuals

image

Logs

Logs.zip

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

Reproduce the issue with Enter-PSSession, psedit, a breakpoint, and F5, then inspect the extension's remote debugging and breakpoint handling using the attached Logs.zip. Done means remote files do not open as invalid host paths, and breakpoints and variable hover inspection remain usable after debugging starts.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell, typescript, vscode
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.