#powershell #debugging
#powershell #отладка
Вопрос:
Искал и не смог найти ответ на вопрос, есть ли в powershell решение с жесткой точкой останова. Что-то вроде javascript debugger;
, python breakpoint()
и vb Stop
.
Вместо этого я должен создавать фиктивные строки внутри операторов if, которым я могу назначить мягкие точки останова.
if ($item.Value -eq "some large iteration case i need to debug through") {
$i = "using to enable soft breakpoint on specific case for debugging purposes as powershell doesn't appear to have have hard breakpoint expression"
}
Ответ №1:
Вы можете использовать Set-PSBreakpoint и включить / отключить-psbreakpoint
Комментарии:
1. Спасибо за ответ. Я видел эти параметры командлета и
Set-PSBreakpoint -Script myscript.ps1 -Variable myvariable
такжеSet-PSBreakpoint -Script myscript.ps1 -Line <line #>
протестировал, после чегоGet-PSBreakpoint -Script myscript.ps1
подтвердил, что он установлен, а затем запустил скрипт, и он останавливается на присвоении переменной или номере строки. Я также использовалRemove-PSBreakpoint -Id <breakpoint #>
для их удаления. Я думаю, что это полезное решение для hard breakpoint, просто не совсем тот подход, основанный на ключевых словах в коде, который я искал.
Ответ №2:
Загрузите PowerShell ISE или используйте Visual Studio с расширением PowerShell.
Комментарии:
1. Спасибо за ответ. У меня есть как powershell ISE, так и Visual Studio code, которые оба поддерживают программные точки останова powershell. Искал ключевое слово, которое включало жесткие точки останова, так что вам будет предложено подключить отладчик при запуске сценария, не запущенного непосредственно отладочной средой ide.