Compartir a través de


BP_RESOLUTION_LOCATION

Especifica la estructura de la ubicación de resolución del punto de interrupción.

Sintaxis

public struct BP_RESOLUTION_LOCATION {
    public uint   bpType;
    public IntPtr unionmember1;
    public IntPtr unionmember2;
    public IntPtr unionmember3;
    public uint   unionmember4;
};

Miembros

bpType
Valor de la enumeración BP_TYPE que especifica cómo interpretar la bpResLocation unión o unionmemberX los miembros.

bpResLocation.bpresCode
[Solo C++] Contiene la estructura BP_RESOLUTION_CODE si bpType = BPT_CODE.

bpResLocation.bpresData
[Solo C++] Contiene la estructura BP_RESOLUTION_DATA si bpType = BPT_DATA.

bpResLocation.unused
[Solo C++] Marcador de posición.

unionmember1
[Solo C#] Vea Comentarios sobre cómo interpretar.

unionmember2
[Solo C#] Vea Comentarios sobre cómo interpretar.

unionmember3
[Solo C#] Vea Comentarios sobre cómo interpretar.

unionmember4
[Solo C#] Vea Comentarios sobre cómo interpretar.

Comentarios

Esta estructura es un miembro de las estructuras BP_ERROR_RESOLUTION_INFO y BP_RESOLUTION_INFO .

[Solo C#] Los unionmemberX miembros se interpretan según la tabla siguiente. Busque la columna izquierda para el bpType valor y, a continuación, a través de para determinar qué representa cada unionmemberX miembro y calcular las referencias correspondientes unionmemberX . Vea el ejemplo para ver una manera de interpretar esta estructura en C#.

bpLocationType unionmember1 unionmember2 unionmember3 unionmember4
BPT_CODE IDebugCodeContext2 - - -
BPT_DATA string (expresión de datos) string (nombre de función) string (nombre de imagen) enum_BP_RES_DATA_FLAGS

Ejemplo

En este ejemplo se muestra cómo interpretar la BP_RESOLUTION_LOCATION estructura en 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;
            }
        }
    }
}

Requisitos

Encabezado: msdbg.h

Espacio de nombres: Microsoft.VisualStudio.Debugger.Interop

Ensamblado: Microsoft.VisualStudio.Debugger.Interop.dll

Consulte también