共用方式為


控制流程令牌

您可以使用 控制流程令牌 ,在調試程式命令程式中建立條件式執行和執行迴圈。

控制流程令牌的行為與 C 和 C++ 中的對應項目類似,但有下列一般例外狀況:

  • 您必須以大括弧括住每個以條件或重複執行的命令區塊,即使只有一個這類命令也一樣。 例如,您無法省略下列命令中的大括弧。

    0:000> .if (ebx>0) { r ebx }
    
  • 每個條件都必須是表達式。 不允許命令。 例如,下列範例會產生語法錯誤。

    0:000> .while (r ebx) { .... }
    
  • 右大括弧之前的最後一個命令不必後面接著分號。

調試程式命令程式中支援下列控制流程令牌。 如需每個令牌語法的詳細資訊,請參閱個別參考主題。

  • .if Token 的行為就像 C 中的 if 關鍵詞。

  • .else Token 的行為就像 C 中的 else 關鍵詞一樣。

  • 如果 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 擴充功能也適用於調試程序命令程式。