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