控制流程令牌
您可以使用 控制流程令牌 ,在調試程式命令程式中建立條件式執行和執行迴圈。
控制流程令牌的行為與 C 和 C++ 中的對應項目類似,但有下列一般例外狀況:
您必須以大括弧括住每個以條件或重複執行的命令區塊,即使只有一個這類命令也一樣。 例如,您無法省略下列命令中的大括弧。
0:000> .if (ebx>0) { r ebx }
每個條件都必須是表達式。 不允許命令。 例如,下列範例會產生語法錯誤。
0:000> .while (r ebx) { .... }
右大括弧之前的最後一個命令不必後面接著分號。
調試程式命令程式中支援下列控制流程令牌。 如需每個令牌語法的詳細資訊,請參閱個別參考主題。
.if Token 的行為就像 C 中的 if 關鍵詞。
如果 C 中的關鍵詞組合,.elsif Token 的行為會像 else 一樣。
.foreach 令牌會剖析調試程式命令、字串或文本文件的輸出。 然後,此令牌會接受它找到的每個專案,並將其作為指定調試程式命令清單的輸入。
. for token 的行為就像 C 中的 for 關鍵詞,不同之處在於您必須以分號分隔多個遞增命令,而不是以逗號分隔。
.while token 的行為就像 C 中的 while 關鍵詞。
.do Token 的行為就像 C 中的 do 關鍵詞,不同之處在於您無法在條件之前使用 “while” 這個字。
.break Token 的行為就像 C 中的 break 關鍵詞。您可以在任何 .for、.while 或 .do 循環內使用此令牌。
.continue Token 的行為就像 C 中的 continue 關鍵詞。您可以在任何 .for、.while 或 .do 循環內使用此令牌。
.catch 令牌可防止程序在發生錯誤時結束。 .catch 令牌後面接著括住一或多個命令的括弧。 如果其中一個命令產生錯誤,則會顯示錯誤訊息、忽略大括弧內所有剩餘的命令,並在右大括弧之後繼續執行第一個命令。
.leave 令牌是用來結束 .catch 區塊。
.printf 令牌的行為就像 C 中的 printf 語句。
.block Token 不會執行任何動作。 您應該只使用此令牌來引進區塊,因為您只能使用一對大括號來建立區塊。 您必須在左大括弧之前新增控制流程令牌。
!for_each_module、!for_each_frame 和 !for_each_local 擴充功能也適用於調試程序命令程式。