Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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