Set-PSDebug コマンドレットの-Stepパラメータを使用すると、ステップ実行を行うことができます。
以前にも使用したことのある下記スクリプトで実験してみましょう。
下記スクリプトをメモ帳などで入力してC:\Work\Debug.ps1 に保存します。
$a = 2 $b = 3 $c = $a + $b Write-Debug "Line4: $c" $a = 4 $b = 5 $c = $a + $b Write-Debug "Line8: $c"
以下の一文を入力し[Enter]を押すとステップ実行が開始されます。
PS C:\Work> Set-PSDebug -step; ./Debug.ps1
1行実行されるごとにメッセージが表示されます。
PS C:\Work> Set-PSDebug -step; ./Debug.ps1 この操作を続行しますか? 1+ Set-PSDebug -step; ./Debug.ps1 [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): デバッグ: 1+ Set-PSDebug -step; ./Debug.ps1
「規定は"Y"」と憑依されている箇所がありますが、これは[Enter]キーを押すと次の行が押される、つまり[Y]キーを押すのと同じ操作を行うこと意味します。
とりあえず[Enter]を押していって、下記のような状態になったらいったん止まってください。
PS C:\Work> Set-PSDebug -step; ./Debug.ps1 この操作を続行しますか? 1+ Set-PSDebug -step; ./Debug.ps1 [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): デバッグ: 1+ Set-PSDebug -step; ./Debug.ps1 この操作を続行しますか? 1+ $a = 2 [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): デバッグ: 1+ $a = 2 この操作を続行しますか? 2+ $b = 3 [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"):
この状態で下記のように「中断」を意味する[S]キーを入力してみましょう。
この操作を続行しますか? 2+ $b = 3 Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ 既定値は "Y"):S
[S]を入力すると、下記のように PS C:\Work>>> というプロンプトが表示されたと思います。ここで $a[Enter] と入力してみてください。
PS C:\Work>>> $a 2
2という値が表示されたと思います。このように処理を中断して変数の中身を確認することが可能です。
プロンプトを終了するには exit と入力します。
Visual Studio.NETのように現在ステップ実行している行がハイライトされるわけではないので見にくく感じるかもしれませんが、慣れてしまえば非常に有効なデバッグ手段です。
是非ためしてみることをおすすめします。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2008, HIRO
E-mail