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