PowerShell中的调试器语句

时间:2019-06-16 10:46:38

标签: powershell debugging

JavaScript中有debugger;语句,该语句停止执行并充当断点。在C#中,具有几乎相同行为的 Debugger.Break() 方法。在PowerShell中是否存在类似的东西?

2 个答案:

答案 0 :(得分:2)

Wait-Debugger是等效的PowerShell。

答案 1 :(得分:1)

所以我想出了一个简单的PowerShell函数来完成这项工作

Function Set-PSBreakPointHere {

  $line = [int] $Myinvocation.ScriptlineNumber + 1 # following line
  $script = $Myinvocation.PSCommandPath

  # set a break point that pauses execution 
  Set-PSBreakpoint -Line $line -Script $script |  Out-Null

  # set a break point that removes the previous break and itself 
  Set-PSBreakpoint -Line $line -Script $script -Action { $breakPOint = Get-PSBreakpoint -Script $script | Where Line -EQ $line | Remove-PSBreakpoint }.GetNewClosure() | Out-Null

}

此函数在调用它的脚本的行上创建两个断点。断点之一停止执行并进入调试器(这是我想要的),另一个断点取消注册这两个断点以保持环境整洁。