BP_RESOLUTION_LOCATION
Określa strukturę lokalizacji rozpoznawania punktu przerwania.
Składnia
public struct BP_RESOLUTION_LOCATION {
public uint bpType;
public IntPtr unionmember1;
public IntPtr unionmember2;
public IntPtr unionmember3;
public uint unionmember4;
};
Członkowie
bpType
Wartość z wyliczenia BP_TYPE , która określa sposób interpretowania bpResLocation
unii lub unionmemberX
członków.
bpResLocation.bpresCode
[Tylko C++ ] Zawiera strukturę BP_RESOLUTION_CODE , jeśli bpType
= BPT_CODE
.
bpResLocation.bpresData
[Tylko C++ ] Zawiera strukturę BP_RESOLUTION_DATA , jeśli bpType
= BPT_DATA
.
bpResLocation.unused
[Tylko C++ ] Symbol zastępczy.
unionmember1
[Tylko C# ] Zobacz uwagi dotyczące interpretacji.
unionmember2
[Tylko C# ] Zobacz uwagi dotyczące interpretacji.
unionmember3
[Tylko C# ] Zobacz uwagi dotyczące interpretacji.
unionmember4
[Tylko C# ] Zobacz uwagi dotyczące interpretacji.
Uwagi
Ta struktura jest elementem członkowskim struktur BP_ERROR_RESOLUTION_INFO i BP_RESOLUTION_INFO .
[Tylko C# ] Składowe unionmemberX
są interpretowane zgodnie z poniższą tabelą. Spójrz w dół lewej kolumny dla bpType
wartości, a następnie w poprzek, aby określić, co każdy unionmemberX
element członkowski reprezentuje i odpowiednio marshaling unionmemberX
. Zobacz Przykład, aby zapoznać się ze sposobem interpretowania tej struktury w języku C#.
bpLocationType |
unionmember1 |
unionmember2 |
unionmember3 |
unionmember4 |
---|---|---|---|---|
BPT_CODE |
IDebugCodeContext2 | - | - | - |
BPT_DATA |
string (wyrażenie danych) |
string (nazwa funkcji) |
string (nazwa obrazu) |
enum_BP_RES_DATA_FLAGS |
Przykład
W tym przykładzie pokazano, jak interpretować BP_RESOLUTION_LOCATION
strukturę w języku C#.
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;
}
}
}
}
Wymagania
Nagłówek: msdbg.h
Przestrzeń nazw: Microsoft.VisualStudio.Debugger.Interop
Zestaw: Microsoft.VisualStudio.Debugger.Interop.dll