在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