次の方法で共有


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_INFO および BP_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

関連項目