python pdb.set_trace()的powershell中是否有等价物?
我希望能够在特定行停止执行脚本,然后跳转到调试器交互式控制台。(我宁愿不必使用 ISE)
我已经看到有一个 Set-PSBreakpoint,但需要指定脚本和行。
python pdb.set_trace()的powershell中是否有等价物?
我希望能够在特定行停止执行脚本,然后跳转到调试器交互式控制台。(我宁愿不必使用 ISE)
我已经看到有一个 Set-PSBreakpoint,但需要指定脚本和行。
我最喜欢的是
$Host.EnterNestedPrompt()
就一行。您的脚本将停在那里,您将获得一个外壳,您可以在其中检查变量等。完成后,您只需退出嵌套外壳并继续执行。不过,我以前有时会把这些陈述留在身边,所以现在我总是:
######## DEBUG ##########
$Host.EnterNestedPrompt()
######## END DEBUG ##########
所以当我完成它们时,我可以很容易地找到(并删除)它们。
好的,所以 python 的 pdb.set_trace() 在 powershell 中的等价物是:
function Set-Trace {
Set-PSBreakPoint -Line ($MyInvocation.ScriptLineNumber + 1) -Script $MyInvocation.ScriptName
}
但是,与 python 不同,在 powershell 中,一旦您安装了跟踪,它将永远存在,直到您终止您的 powershell 会话。我建议将此添加到脚本的开头以删除旧痕迹:
function Remove-AllTraces {
Get-PSBreakpoint | Remove-PSBreakpoint
}
非常感谢@Richard 的建议。:)