Condividi tramite


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 = bpTypeBPT_CODE .

bpResLocation.bpresData
[solo C++] Contiene la struttura BP_RESOLUTION_DATA se = bpTypeBPT_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

Vedi anche