共用方式為


? (評估表示式)

問號 (?) 命令會評估並顯示表示式的值。

問號本身 () 會顯示命令說明。 ? 表達式命令會評估指定的表達式。

? Expression

參數

運算式

指定要評估的表達式。

Environment

項目 說明
模式 使用者模式、核心模式
目標 即時、損毀傾印
平台 全部

備註

命令的 ? 輸入和輸出取決於您使用的是MASM表示式語法或C++運算式語法。 如需這些表達式語法類型的詳細資訊,請參閱 評估表達式數值表達式語法

如果您使用MASM語法,輸入和輸出取決於目前的基底。 若要變更基數,請使用 n (Set Number Base) 命令。

命令 ? 會在目前線程和進程的內容中評估表達式中的符號。

某些字串可能包含逸出,例如 \n\"、、\r、 和 \b,是要以字面方式讀取,而不是由評估工具解譯。 如果評估工具會解譯字串內的逸出,則可能會發生評估中的錯誤。 例如:

0:000> as AliasName c:\dir\name.txt
0:000> al
  Alias            Value
 -------          -------
 AliasName        c:\dir\name.txt
0:001> ? $spat( "c:\dir\name.txt", "*name*" )
Evaluate expression: 0 = 00000000

0:001> ? $spat( "${AliasName}", "*name*" )
Evaluate expression: 0 = 00000000

0:001> ? $spat( "c:\dir\", "*filename*" )
Syntax error at '( "c:\dir\", "*filename*" )

在前兩個範例中,即使字串確實符合模式,評估工具仍會傳回 FALSE 值。 第三個,評估工具無法進行比較,因為字串結尾為反斜杠 ( \ ),因此 \" 評估工具會轉譯 。

若要讓評估工具以常值方式解譯字串,您必須使用 @"String" 語法。 下列程式代碼範例顯示正確的結果:

0:000> ? $spat( @"c:\dir\name.txt", "*name*" )
Evaluate expression: 1 = 00000000`00000001

0:000> ? $spat( @"${AliasName}", "*name*" )
Evaluate expression: 1 = 00000000`00000001

0:001> ? $spat( @"c:\dir\", "*filename*" )
Evaluate expression: 0 = 00000000

在上述範例中 $spat ,MASM 運算符會檢查第一個字串,以判斷它是否符合第二個字串的模式(不區分大小寫)。 如需MASM運算子的詳細資訊,請參閱 MASM數位和運算符 主題。

另請參閱

?? (評估C++表達式)

.formats (顯示數位格式)

MASM 數位和運算符

C++數位和運算符

MASM 運算式與C++表達式

混合表達式範例