다음을 통해 공유


ICorDebugEval 인터페이스

디버깅 중인 코드의 컨텍스트 내에서 디버거가 코드를 실행할 수 있도록 하는 메서드를 제공합니다.

메서드

메서드

설명

ICorDebugEval::Abort 메서드

ICorDebugEval 개체에서 현재 수행 중인 계산을 중단합니다.

ICorDebugEval::CallFunction 메서드

지정한 함수를 호출하도록 설정합니다. 이 메서드는 .NET Framework 버전 2.0에서는 사용되지 않습니다. 대신 ICorDebugEval2::CallParameterizedFunction을 사용하십시오.

ICorDebugEval::CreateValue 메서드

초기 값이 0 또는 null인 지정된 형식의 ICorDebugValue 인터페이스 개체에 대한 인터페이스 포인터를 가져옵니다. 이 메서드는 .NET Framework 버전 2.0에서는 사용되지 않습니다. 대신 ICorDebugEval2::CreateValueForType을 사용하십시오.

ICorDebugEval::GetResult 메서드

확인 결과를 포함하는 ICorDebugValue에 대한 인터페이스 포인터를 가져옵니다.

ICorDebugEval::GetThread 메서드

이 확인 작업이 실행되고 있거나 실행될 ICorDebugThread에 대한 인터페이스 포인터를 가져옵니다.

ICorDebugEval::IsActive 메서드

ICorDebugEval 개체가 현재 실행되고 있는지 여부를 나타내는 값을 가져옵니다.

ICorDebugEval::NewArray 메서드

지정한 요소 형식 및 차원의 새 배열을 할당합니다. 이 메서드는 .NET Framework 버전 2.0에서는 사용되지 않습니다. 대신 ICorDebugEval2::NewParameterizedArray를 사용하십시오.

ICorDebugEval::NewObject 메서드

새 개체 인스턴스를 할당하고 지정된 생성자 메서드를 호출합니다. 이 메서드는 .NET Framework 버전 2.0에서는 사용되지 않습니다. 대신 ICorDebugEval2::NewParameterizedObject를 사용하십시오.

ICorDebugEval::NewObjectNoConstructor 메서드

생성자 메서드 호출을 시도하지 않고 지정한 형식의 새 개체 인스턴스를 할당합니다. 이 메서드는 .NET Framework 버전 2.0에서는 사용되지 않습니다. 대신 ICorDebugEval2::NewParameterizedObjectNoConstructor를 사용하십시오.

ICorDebugEval::NewString 메서드

지정된 내용을 사용하여 새 문자열 개체를 할당합니다.

설명

ICorDebugEval 개체는 확인을 수행하는 데 사용되는 특정 스레드의 컨텍스트에서 만들어집니다. 특정 확인에 사용되는 모든 개체와 형식은 동일한 응용 프로그램 도메인 내에 있어야 합니다. 해당 응용 프로그램 도메인은 스레드의 현재 응용 프로그램 도메인과 같지 않아도 됩니다. 확인은 중첩될 수 있습니다.

확인 작업은 디버거에서 ICorDebugController::Continue를 호출한 다음 ICorDebugManagedCallback::EvalComplete 콜백을 받을 때까지 완료되지 않습니다. 다른 스레드가 실행되지 않도록 한 상태에서 확인 기능을 사용해야 하는 경우에는 ICorDebugController::Continue를 호출하기 전에 ICorDebugController::SetAllThreadsDebugState 또는 ICorDebugController::Stop을 사용하여 스레드를 일시 중단합니다.

확인이 진행 중일 때는 사용자 코드가 실행되므로 클래스 로드 및 중단점을 비롯한 디버그 이벤트가 발생할 수 있습니다. 디버거에서는 이러한 이벤트의 콜백을 정상적으로 받습니다. 확인 상태는 정상적인 프로그램 상태의 검사 부분으로 표시됩니다. 스택 체인은 CHAIN_FUNC_EVAL 체인이 됩니다. 자세한 내용은 CorDebugStepReason 열거형 및 ICorDebugChain::GetReason 메서드를 참조하십시오. 전체 디버거 API는 계속해서 정상적으로 작동합니다.

교착 상태 및 무한 루프 상황이 발생하면 사용자 코드는 완료되지 않습니다. 이러한 경우 프로그램을 다시 시작하기 전에 ICorDebugEval::Abort를 호출해야 합니다.

참고참고

이 인터페이스는 컴퓨터 간이나 프로세스 간에 원격으로 호출되는 것을 지원하지 않습니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: CorDebug.idl, CorDebug.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

참고 항목

참조

ICorDebugEval2 인터페이스

ICorDebugThread 인터페이스

ICorDebugValue 인터페이스

기타 리소스

디버깅 인터페이스