Compartir a través de


BP_LOCATION

Especifica el tipo de estructura utilizado para describir la ubicación del punto de interrupción.

Sintaxis

public struct BP_LOCATION {
    public uint   bpLocationType;
    public IntPtr unionmember1;
    public IntPtr unionmember2;
    public IntPtr unionmember3;
    public IntPtr unionmember4;
};

Miembros

bpLocationType
Valor de la enumeración BP_LOCATION_TYPE utilizada para interpretar la bpLocation unión o los unionmemberX miembros.

bpLocation.bplocCodeFileLine
[Solo C++] Contiene la estructura BP_LOCATION_CODE_FILE_LINE si bpLocationType = BPLT_CODE_FILE_LINE.

bpLocation.bplocCodeFuncOffset
[Solo C++] Contiene la estructura BP_LOCATION_CODE_FUNC_OFFSET si bpLocationType = BPLT_CODE_FUNC_OFFSET.

bpLocation.bplocCodeContext
[Solo C++] Contiene la estructura BP_LOCATION_CODE_CONTEXT si bpLocationType = BPLT_CODE_CONTEXT.

bpLocation.bplocCodeString
[Solo C++] Contiene la estructura BP_LOCATION_CODE_STRING si bpLocationType = BPLT_CODE_STRING.

bpLocation.bplocCodeAddress
[Solo C++] Contiene la estructura BP_LOCATION_CODE_ADDRESS si bpLocationType = BPLT_CODE_ADDRESS.

bpLocation.bplocDataString
[Solo C++] Contiene la estructura BP_LOCATION_DATA_STRING si bpLocationType = BPLT_DATA_STRING.

bpLocation.bplocResolution
[Solo C++] Contiene la estructura BP_LOCATION_RESOLUTION si bpLocationType = BPLT_RESOLUTION.

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 miembro de las estructuras BP_REQUEST_INFO y BP_REQUEST_INFO2 .

[Solo C#] Los unionmemberX miembros se interpretan según la tabla siguiente. Busque en la columna izquierda el bpLocationType valor y, a continuación, examine las demás columnas para determinar qué representa cada unionmemberX miembro y serializa el correspondiente unionmemberX . Vea el ejemplo para ver una manera de interpretar una parte de esta estructura en C#.

bpLocationType unionmember1 unionmember2 unionmember3 unionmember4
BPLT_CODE_FILE_LINE string (un contexto) IDebugDocumentPosition2 - -
BPLT_CODE_FUNC_OFFSET string (un contexto) IDebugFunctionPosition2 - -
BPLT_CODE_CONTEXT IDebugCodeContext2 - - -
BPLT_CODE_STRING string (un contexto) string (expresión condicional) - -
BPLT_CODE_ADDRESS string (un contexto) string (dirección URL del módulo) string (nombre de función) string (dirección)
BPLT_DATA_STRING IDebugThread2 string (un contexto) string (expresión de datos) uint (número de elementos)
BPLT_RESOLUTION IDebugBreakpointResolution2 - - -

Ejemplo

En este ejemplo se muestra cómo interpretar la BP_LOCATION estructura en C# para el BPLT_DATA_STRING tipo . Este tipo en particular muestra cómo interpretar los cuatro unionmemberX miembros en todos los formatos posibles (objeto, cadena y número).

using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;

namespace MyPackage
{
    public class MyClass
    {
        public void Interpret(BP_LOCATION bp)
        {
            if (bp.bpLocationType == (uint)enum_BP_LOCATION_TYPE.BPLT_DATA_STRING)
            {
                IDebugThread2 pThread = (IDebugThread2)Marshal.GetObjectForIUnknown(bp.unionmember1);
                string context = Marshal.PtrToStringBSTR(bp.unionmember2);
                string dataExpression = Marshal.PtrToStringBSTR(bp.unionmember3);
                uint numElements = (uint)Marshal.ReadInt32(bp.unionmember4);
            }
        }
    }
}

Requisitos

Encabezado: msdbg.h

Espacio de nombres: Microsoft.VisualStudio.Debugger.Interop

Ensamblado: Microsoft.VisualStudio.Debugger.Interop.dll

Consulte también