다음을 통해 공유


중단점 관련 메서드

디버그 엔진(DE)은 중단점 설정을 지원해야 합니다. Visual Studio 디버깅은 다음과 같은 유형의 중단점을 지원합니다.

  • 제한

    UI를 통해 요청되고 지정된 코드 위치에 성공적으로 바인딩됨

  • 보류 중

    UI를 통해 요청되었지만 아직 실제 지침에 바인딩되지 않음

토론(Discussion)

예를 들어 명령이 아직 로드되지 않은 경우 보류 중인 중단점이 발생합니다. 코드가 로드되면 보류 중인 중단점은 지정된 위치의 코드에 바인딩하려고 합니다. 즉, 코드의 해당 위치에 중단 명령을 삽입하려는 것입니다. 이벤트는 성공적인 바인딩을 나타내거나 바인딩 오류가 있음을 알리기 위해 SDM(세션 디버그 관리자)으로 전송됩니다.

보류 중인 중단점은 해당 바인딩된 중단점의 자체 내부 목록도 관리합니다. 보류 중인 중단점이 하나 있으면 코드에 많은 중단점이 삽입될 수 있습니다. Visual Studio 디버깅 UI는 보류 중인 중단점 및 해당 바인딩된 중단점의 트리 뷰를 보여 줍니다.

보류 중인 중단점을 만들고 사용하려면 IDebugEngine2::CreatePendingBreakpoint 메서드와 IDebugPendingBreakpoint2 인터페이스의 다음 메서드를 구현해야 합니다.

메서드 Description
CanBind 지정된 보류 중인 중단점이 코드 위치에 바인딩할 수 있는지 여부를 결정합니다.
바인드 지정된 보류 중인 중단점을 하나 이상의 코드 위치에 바인딩합니다.
GetState 보류 중인 중단점의 상태를 가져옵니다.
GetBreakpointRequest (중단점 요청 받기) 보류 중인 중단점을 만드는 데 사용되는 중단점 요청을 가져옵니다.
Enable 보류 중인 중단점의 활성 상태를 전환합니다.
EnumBoundBreakpoints 대기 중인 중단점에서 바인딩된 모든 중단점을 열거합니다.
EnumErrorBreakpoints 보류 중인 중단점에서 발생하는 모든 오류 중단점을 열거합니다.
Delete 보류 중인 중단점과 그로부터 바인딩된 모든 중단점을 삭제합니다.

바인딩된 중단점 및 오류 중단점을 열거하려면 IEnumDebugBoundBreakpoints2IEnumDebugErrorBreakpoints2의 모든 메서드를 구현해야 합니다.

코드 위치에 바인딩하는 보류 중인 중단점에는 다음 IDebugBoundBreakpoint2 메서드를 구현해야 합니다.

메서드 Description
GetPendingBreakpoint 중단점이 포함된 보류 중인 중단점을 가져옵니다.
GetState 바인딩된 중단점의 상태를 가져옵니다.
GetBreakpointResolution 중단점을 설명하는 중단점 해상도를 가져옵니다.
Enable 중단점을 사용하거나 사용하지 않도록 설정합니다.
Delete 바인딩된 중단점을 삭제합니다.

해결 및 요청 정보를 사용하려면 다음 IDebugBreakpointResolution2 메서드를 구현해야 합니다.

메서드 Description
GetBreakpointType (중단점 유형 가져오기) 해상도로 표시되는 중단점의 형식을 가져옵니다.
GetResolutionInfo 중단점을 설명하는 중단점 해결 정보를 가져옵니다.

바인딩 중에 발생할 수 있는 오류를 해결하려면 다음 IDebugErrorBreakpoint2 메서드를 구현해야 합니다.

메서드 Description
GetPendingBreakpoint 잘못된 중단점을 포함하는 보류 중인 중단점을 가져옵니다.
GetBreakpointResolution 오류 중단점을 설명하는 중단점 오류 해결을 가져옵니다.

바인딩 중에 발생할 수 있는 오류를 해결하려면 IDebugErrorBreakpointResolution2의 다음 메서드도 필요합니다.

메서드 Description
GetBreakpointType 중단점의 유형을 가져옵니다.
GetResolutionInfo 중단점의 해상도 정보를 가져옵니다.

중단점에서 소스 코드를 보려면 IDebugStackFrame2::GetDocumentContext 및/또는 IDebugStackFrame2::GetCodeContext의 메서드를 구현해야 합니다.

참고하십시오