BP_RESOLUTION_LOCATION
Specifica la struttura della posizione di risoluzione del punto di interruzione.
Sintassi
public struct BP_RESOLUTION_LOCATION {
public uint bpType;
public IntPtr unionmember1;
public IntPtr unionmember2;
public IntPtr unionmember3;
public uint unionmember4;
};
Membri
bpType
Valore dell'enumerazione BP_TYPE che specifica come interpretare l'unione o unionmemberX
i bpResLocation
membri.
bpResLocation.bpresCode
[solo C++] Contiene la struttura BP_RESOLUTION_CODE se = bpType
BPT_CODE
.
bpResLocation.bpresData
[solo C++] Contiene la struttura BP_RESOLUTION_DATA se = bpType
BPT_DATA
.
bpResLocation.unused
[solo C++] Segnaposto.
unionmember1
[Solo C#] Vedere La sezione Osservazioni su come interpretare.
unionmember2
[Solo C#] Vedere La sezione Osservazioni su come interpretare.
unionmember3
[Solo C#] Vedere La sezione Osservazioni su come interpretare.
unionmember4
[Solo C#] Vedere La sezione Osservazioni su come interpretare.
Osservazioni:
Questa struttura è un membro delle strutture BP_ERROR_RESOLUTION_INFO e BP_RESOLUTION_INFO .
[Solo C#] I unionmemberX
membri vengono interpretati in base alla tabella seguente. Cercare in basso la colonna sinistra per il bpType
valore e quindi attraverso per determinare cosa rappresenta ogni unionmemberX
membro e effettuare il marshalling di unionmemberX
conseguenza. Vedere l'esempio per un modo per interpretare questa struttura in C#.
bpLocationType |
unionmember1 |
unionmember2 |
unionmember3 |
unionmember4 |
---|---|---|---|---|
BPT_CODE |
IDebugCodeContext2 | - | - | - |
BPT_DATA |
string (espressione di dati) |
string (nome della funzione) |
string (nome immagine) |
enum_BP_RES_DATA_FLAGS |
Esempio
Questo esempio illustra come interpretare la BP_RESOLUTION_LOCATION
struttura in 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;
}
}
}
}
Requisiti
Intestazione: msdbg.h
Spazio dei nomi: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll