PowerShell mysteriously freezes then asks to report the bug

Offen
#5,214 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
55/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
csharp, powershell
Bereich
cli

Rechercherichtung

Start with the stack trace at Microsoft.PowerShell.PSConsoleReadLine.BackwardChar, then follow its calls through InputLoop and ReadLine to the console cursor operation. Use the reported arrow-key editing and selection scenario as the reproduction case; done means the session no longer freezes or throws an ArgumentOutOfRangeException when adjusting the selection.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Needs-Triage :mag:
Prerequisites
  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues, especially the pinned issues.
Exception report
Oops, something went wrong.
Please report this bug with ALL the details below, including both the 'Environment' and 'Exception' sections.
Please report on GitHub: https://github.com/PowerShell/PSReadLine/issues/new?template=Bug_Report.yaml
Thank you!

### Environment
PSReadLine: 2.4.5
PowerShell: 7.6.6
OS: Microsoft Windows 10.0.26200
BufferWidth: 120
BufferHeight: 30

Last 200 Keys:

 (I deleted these to paste into Discord and that copy is unfortunately all I have left now. It was mostly just a huge amount of arrow keys.)

### Exception

System.ArgumentOutOfRangeException: The value must be greater than or equal to zero and less than the console's buffer size in that dimension. (Parameter 'top')
Actual value was 40.
   at System.ConsolePal.SetCursorPosition(Int32 left, Int32 top)
   at Microsoft.PowerShell.PSConsoleReadLine.BackwardChar(Nullable`1 key, Object arg)
   at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)
Screenshot

Unfortunately the session in which the error occurred is now lost.

Environment data
PS Version: 7.6.6
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.4.5
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 156
BufferHeight: 41

NOTE: I lost the session in which the error occurred, so the buffer details may not be accurate.
Steps to reproduce

I was trying to copy earlier output while scrolled up, but clicking kept sending me back to the bottom. I had opted to select everything from the bottom up to the text I wanted to copy and was adjusting the selection position with the arrow keys when the error occurred.

Expected behavior

PowerShell should not freeze for a moment, becoming unresponsive for some seconds, then spit out the error.

Actual behavior

PowerShell froze for a moment, becoming unresponsive for some seconds, then spat out the error.

Vorherrschende Sprache
C#
Sterne
4.4k
Forks
341
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus PowerShell/PSReadLine

Alle Issues in PowerShell/PSReadLine

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.