PowerShell:
Korzystanie z debugera
Jak to zrobić:
W PowerShellu możesz debugować skrypty za pomocą wbudowanego środowiska PowerShell Integrated Scripting Environment (ISE) lub Visual Studio Code (VS Code) z rozszerzeniem PowerShell. Oto jak używać punktów przerwania w obu przypadkach:
PowerShell ISE:
# Ustaw punkt przerwania na określonej linii
Set-PSBreakpoint -Script .\MyScript.ps1 -Line 5
# Uruchom swój skrypt normalnie
.\MyScript.ps1
# Kiedy skrypt natrafi na punkt przerwania, możesz inspekcjonować zmienne
$myVariable
# Kontynuuj wykonanie
Continue
Visual Studio Code:
# Otwórz swój skrypt PowerShell w VS Code.
# Kliknij po lewej stronie numeru linii, aby ustawić punkt przerwania.
# Rozpocznij debugowanie, naciskając F5 lub klikając 'Rozpocznij debugowanie'.
# VS Code zatrzyma wykonanie na twoim punkcie przerwania.
# Użyj panelu debugowania, aby obserwować zmienne, inspekcjonować stos wywołań i kontrolować przepływ.
Debugowanie w obu środowiskach pozwala na wejście w kod (F11), krok nad kodem (F10) oraz wyjście z kodu (Shift+F11) podczas debugowania.
Zagłębienie się
Historia debugowania w PowerShellu była nieco niewygodna; wymagała wielu linii Write-Host
do wyjścia stanów zmiennych lub klasycznej metody prób i błędów. Z pojawieniem się PowerShell ISE, a niedawno również VS Code z jego bogatymi funkcjami debugowania, debugowanie w PowerShellu stało się niemal równie intuicyjne, jak w pełnoprawnych językach programowania.
Alternatywami dla natywnych narzędzi debugowania PowerShell są narzędzia firm trzecich, takie jak PowerGUI lub używanie rozbudowanych IDE takich jak Visual Studio z wtyczką PowerShell.
Przy implementacji debugera warto zwrócić uwagę na zakres skryptu, szczególnie przy pracy ze skryptami źródłowymi lub modułami. Punkty przerwania mogą być oparte na warunkach, zmianach zmiennych lub konkretnych liniach, co pozwala na precyzyjną kontrolę podczas sesji debugowania.
Ponadto, z przejściem na PowerShell Core (PowerShell wieloplatformowy), debugowanie w dużej mierze przeszło w ręce VS Code, które zapewnia spójne doświadczenie na różnych platformach.
Zobacz również
Aby dowiedzieć się więcej o debugowaniu w PowerShell: