? (식 계산)
물음표(?
) 명령은 식의 값을 평가하고 표시합니다.
물음표 자체(?)는 명령 도움말을 표시합니다. ?
식 명령은 지정된 식을 평가합니다.
? Expression
매개 변수
식
평가할 식을 지정합니다.
환경
항목 | 설명 |
---|---|
모드 | 사용자 모드, 커널 모드 |
대상 | 라이브, 크래시 덤프 |
플랫폼 | 모두 |
설명
명령의 ?
입력 및 출력은 MASM 식 구문 또는 C++ 식 구문을 사용하는지 여부에 따라 달라집니다. 이러한 종류의 식 구문에 대한 자세한 내용은 식 및 숫자 식 구문 계산을 참조하세요.
MASM 구문을 사용하는 경우 입력 및 출력은 현재 radix에 따라 달라집니다. radix를 변경하려면 n(숫자 기준 설정) 명령을 사용합니다.
이 ?
명령은 현재 스레드 및 프로세스의 컨텍스트에서 식의 기호를 평가합니다.
일부 문자열에는 계산기에서 해석하지 않고 문자 그대로 읽도록 되어 있는 이스케이프(예: \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
앞의 예제에서 MASM 연산자는 첫 번째 문자열을 확인하여 두 번째 문자열의 패턴과 일치하는지(대/소문자를 구분하지 않는) 여부를 확인합니다 $spat
. MASM 연산자에 대한 자세한 내용은 MASM 번호 및 연산자 항목을 참조하세요.