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