중단점 구문

디버거 명령 창 또는 WinDbg 그래픽 인터페이스를 통해 중단점을 만들 때 다음 구문 요소를 사용할 수 있습니다.

중단점의 주소

중단점은 가상 주소, 함수 오프셋 및 원본 줄 번호를 포함하여 다양한 종류의 주소 구문을 지원합니다. 예를 들어 다음 명령을 사용하여 중단점을 설정할 수 있습니다.

0:000> bp 0040108c
0:000> bp main+5c
0:000> bp `source.c:31`

이 구문에 대한 자세한 내용은 숫자 식 구문, 소스 줄 구문 및 개별 명령 topics 참조하세요.

메서드의 중단점

MyClass 클래스의 MyMethod 메서드에 중단점을 배치하려는 경우 두 가지 구문을 사용할 수 있습니다.

  • MASM 식 구문에서 메서드를 이중 콜론 또는 이중 밑줄로 나타낼 수 있습니다.

    0:000> bp MyClass::MyMethod 
    0:000> bp MyClass__MyMethod 
    
  • C++ 식 구문에서는 이중 콜론으로 메서드를 나타내야 합니다.

    0:000> bp @@( MyClass::MyMethod ) 
    

더 복잡한 중단점 명령을 사용하려면 MASM 식 구문을 사용해야 합니다. 식 구문에 대한 자세한 내용은 식 평가를 참조하세요.

복잡한 MASM 식을 사용하는 중단점

공백이 포함된 함수와 C++ 공용 클래스의 멤버를 포함하여 복잡한 함수에 중단점을 설정하려면 식을 괄호로 묶습니다. 예를 들어 bp(?? MyPublic) 또는 bp(연산자 new).

더 다양한 기술은 @!"을 사용하는 것입니다. chars" 구문입니다. 기호 확인을 위해 임의 텍스트를 제공할 수 있는 MASM 계산기에서 특수한 이스케이프입니다. 세 개의 기호 @!"로 시작하고 따옴표(")로 끝나야 합니다. 이 구문이 없으면 MASM 계산기에서 기호 이름에 공백, 꺾쇠 괄호(<, >) 또는 기타 특수 문자를 사용할 수 없습니다. 이 구문은 매개 변수가 아닌 이름 전용입니다. 템플릿 및 오버로드는 이 따옴표 표기법이 필요한 기호의 기본 원본입니다. @!"을 사용하여 bu 명령을 설정할 수도 있습니다. chars" 구문은 다음 코드 예제와 같습니다.

0:000> bu @!"ExecutableName!std::pair<unsigned int,std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > >::operator="

이 예제에서 ExecutableName 은 실행 파일의 이름입니다.

이 이스케이프 구문은 C 함수 이름에 공백(또는 특수 문자)이 없기 때문에 C 대신 C++(예: 오버로드된 연산자)에 더 유용합니다. 그러나 이 구문은 .NET Framework 오버로드를 많이 사용하기 때문에 많은 관리 코드에도 중요합니다.

C++ 구문의 임의 텍스트에 중단점을 설정하려면 c++호환 기호에 bu @@c++(text) 를 사용합니다.

스크립트의 중단점

중단점 ID를 명시적으로 참조할 필요가 없습니다. 대신 중단점 ID에 해당하는 정수로 확인되는 숫자 식을 사용할 수 있습니다. 식을 중단점으로 해석해야 함을 나타내려면 다음 구문을 사용합니다.

b?[Expression]

이 구문에서는 대괄호가 필요하며 Expression 은 중단점 ID에 해당하는 정수로 확인되는 모든 숫자 식을 의미합니다.

이 구문을 사용하면 디버거 스크립트가 프로그래밍 방식으로 중단점을 선택할 수 있습니다. 다음 예제에서 중단점은 사용자 정의 의사 레지스터의 값에 따라 변경됩니다.

b?[@$t0]

중단점 의사 레지스터

식에서 중단점 주소를 참조하려는 경우 $bp숫자 구문과 의사 레지스터를 사용할 수 있습니다. 여기서 Number는 중단점 ID입니다. 이 구문에 대한 자세한 내용은 Pseudo-Register 구문을 참조하세요.

모호한 중단점 확인

이제 디버거 엔진 버전 10.0.25310.1001 이상에서 모호한 중단점 확인이 지원됩니다. 모호한 중단점을 사용하면 디버거가 중단점 식이 여러 위치로 확인되는 특정 시나리오에서 중단점을 설정할 수 있습니다. 자세한 내용은 모호한 중단점 확인을 참조하세요.

참조

중단점 사용

중단점 구문

bp, bu, bm(중단점 설정)

해결되지 않은 중단점(부 중단점)