다음을 통해 공유


BP_RESOLUTION_LOCATION

중단점 해결 위치의 구조체를 지정합니다.

구문

public struct BP_RESOLUTION_LOCATION {
    public uint   bpType;
    public IntPtr unionmember1;
    public IntPtr unionmember2;
    public IntPtr unionmember3;
    public uint   unionmember4;
};

멤버

bpType
bpResLocation 공용 구조체 또는 unionmemberX 멤버를 해석하는 방법을 지정하는 BP_TYPE 열거형의 값입니다.

bpResLocation.bpresCode
[C++에만 해당] bpType = BPT_CODE인 경우 BP_RESOLUTION_CODE 구조체를 포함합니다.

bpResLocation.bpresData
[C++에만 해당] bpType = BPT_DATA인 경우 BP_RESOLUTION_DATA 구조체를 포함합니다.

bpResLocation.unused
[C++에만 해당] 자리 표시자입니다.

unionmember1
[C#에만 해당] 해석 방법에 대한 설명을 참조하세요.

unionmember2
[C#에만 해당] 해석 방법에 대한 설명을 참조하세요.

unionmember3
[C#에만 해당] 해석 방법에 대한 설명을 참조하세요.

unionmember4
[C#에만 해당] 해석 방법에 대한 설명을 참조하세요.

설명

이 구조체는 BP_ERROR_RESOLUTION_INFOBP_RESOLUTION_INFO 구조체의 멤버입니다.

[C#에만 해당] unionmemberX 멤버는 다음 표에 따라 해석됩니다. 왼쪽 열에서 bpType 값을 확인한 다음, 각 unionmemberX 멤버가 나타내는 내용을 결정하고 그에 따라 unionmemberX를 마샬링합니다. C#에서 이 구조체를 해석하는 방법은 예제를 참조하세요.

bpLocationType unionmember1 unionmember2 unionmember3 unionmember4
BPT_CODE IDebugCodeContext2 - - -
BPT_DATA string(데이터 식) string(함수 이름) string(이미지 이름) enum_BP_RES_DATA_FLAGS

예시

이 예제에서는 C#에서 BP_RESOLUTION_LOCATION 구조체를 해석하는 방법을 보여 줍니다.

using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;

namespace MyPackage
{
    public class MyClass
    {
        public void Interpret(BP_RESOLUTION_LOCATION bprl)
        {
            if (bprl.bpType == (uint)enum_BP_TYPE.BPT_CODE)
            {
                IDebugCodeContext2 pContext = (IDebugCodeContext2)Marshal.GetObjectForIUnknown(bp.unionmember1);
            }
            else if (bprl.bpType == (uint)enum_BP_TYPE.BPT_DATA)
            {
                string dataExpression = Marshal.PtrToStringBSTR(bp.unionmember3);
                string functionName = Marshal.PtrToStringBSTR(bp.unionmember2);
                string imageName = Marshal.PtrToStringBSTR(bp.unionmember3);
                enum_BP_RES_DATA_FLAGS numElements = (enum_BP_RES_DATA_FLAGS)bp.unionmember4;
            }
        }
    }
}

요구 사항

헤더: msdbg.h

네임스페이스: Microsoft.VisualStudio.Debugger.Interop

어셈블리: Microsoft.VisualStudio.Debugger.Interop.dll

참고 항목