다음을 통해 공유


? (식 평가)

물음표(?) 명령은 식 값을 평가하고 표시합니다.

물음표 자체(?)는 명령 도움말을 표시합니다. ? 명령은 지정된 식을 평가합니다.

? Expression

매개 변수

평가할 식을 지정합니다.

Environment

항목 Description
모드 사용자 모드, 커널 모드
대상 라이브, 크래시 덤프
플랫폼 모두

설명

명령의 ? 입력 및 출력은 MASM 식 구문 또는 C++ 식 구문을 사용하는지 여부에 따라 달라집니다. 이러한 종류의 식 구문에 대한 자세한 내용은 식 및 숫자 식 구문평가를 참조하세요.

MASM 구문을 사용하는 경우 입력 및 출력은 현재 radix에 따라 달라집니다. radix를 변경하려면 n(숫자 기준 설정) 명령을 사용합니다.

명령은 ? 현재 스레드 및 프로세스의 컨텍스트에서 식의 기호를 평가합니다.

일부 문자열에는 계산기에서 해석하지 않고 문자 그대로 읽어야 하는 , \", \r및 와 \b같은 \n이스케이프가 포함될 수 있습니다. 계산기에서 문자열 내의 이스케이프를 해석하면 평가 오류가 발생할 수 있습니다. 예를 들면 다음과 같습니다.

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 번호 및 연산자 항목을 참조하세요.

추가 정보

?? (C++ 식 평가)

.formats(숫자 형식 표시)

MASM 번호 및 연산자

C++ 숫자 및 연산자

MASM 식과 C++ 식 비교

혼합 식 예제