在python pdb.set_trace()的powershell中是否存在等价物?pdb.set_trace()for powershell跳入调试器交互式控制台
我希望能够在特定行停止执行脚本,然后跳入调试器交互式控制台。 (我宁愿不必使用ISE)
我看到有一个Set-PSBreakpoint,但是需要指定脚本和行。
在python pdb.set_trace()的powershell中是否存在等价物?pdb.set_trace()for powershell跳入调试器交互式控制台
我希望能够在特定行停止执行脚本,然后跳入调试器交互式控制台。 (我宁愿不必使用ISE)
我看到有一个Set-PSBreakpoint,但是需要指定脚本和行。
好了,所以在python的pdb.set_trace的PowerShell中的等价物()是:
function Set-Trace {
Set-PSBreakPoint -Line ($MyInvocation.ScriptLineNumber + 1) -Script $MyInvocation.ScriptName
}
不过,与蟒蛇,在PowerShell中一旦你安装了跟踪它会永远存在,直到你杀死你PowerShell会话。我建议在脚本的开头添加以删除旧痕迹:
function Remove-AllTraces {
Get-PSBreakpoint | Remove-PSBreakpoint
}
非常感谢@ Richard的建议。 :)
我最喜欢的是
$Host.EnterNestedPrompt()
只是一条线。你的脚本将停在那里,你将得到一个shell,你可以检查变量等。当你完成后,你只需退出你的嵌套shell并继续执行。我以前有时会离开这些语句躺在身边,虽然,所以现在我总是:
######## DEBUG ##########
$Host.EnterNestedPrompt()
######## END DEBUG ##########
所以我可以很容易地找到(和删除)他们当我要和他们一起做。
哇。这是一种生活救星。我是如何在没有它的情况下生活的? – iTayb 2017-06-15 08:07:08
使用'Set-PSBreakPoint'和'$ MyInvocation'来设置当前脚本下一行的断点? (稍加注意并获得外部作用域的'$ MyInvocation',这可以在帮助程序中完成。) – Richard 2013-02-20 10:52:07