Hizkuntza
Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
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