IVsLanguageDebugInfo.ValidateBreakpointLocation (Método)
Valida la posición especificada como un lugar para establecer un punto de interrupción.
Espacio de nombres: Microsoft.VisualStudio.TextManager.Interop
Ensamblado: Microsoft.VisualStudio.TextManager.Interop (en Microsoft.VisualStudio.TextManager.Interop.dll)
Sintaxis
'Declaración
Function ValidateBreakpointLocation ( _
pBuffer As IVsTextBuffer, _
iLine As Integer, _
iCol As Integer, _
<OutAttribute> pCodeSpan As TextSpan() _
) As Integer
int ValidateBreakpointLocation(
IVsTextBuffer pBuffer,
int iLine,
int iCol,
TextSpan[] pCodeSpan
)
int ValidateBreakpointLocation(
[InAttribute] IVsTextBuffer^ pBuffer,
[InAttribute] int iLine,
[InAttribute] int iCol,
[OutAttribute] array<TextSpan>^ pCodeSpan
)
abstract ValidateBreakpointLocation :
pBuffer:IVsTextBuffer *
iLine:int *
iCol:int *
pCodeSpan:TextSpan[] byref -> int
function ValidateBreakpointLocation(
pBuffer : IVsTextBuffer,
iLine : int,
iCol : int,
pCodeSpan : TextSpan[]
) : int
Parámetros
pBuffer
Tipo: Microsoft.VisualStudio.TextManager.Interop.IVsTextBuffer[in] La interfaz de IVsTextBuffer para el búfer de texto que contiene el punto de interrupción.
iLine
Tipo: Int32[in] número de la línea que contiene el punto de interrupción.
iCol
Tipo: Int32[in] número de la columna que contiene el punto de interrupción.
pCodeSpan
Tipo: array<Microsoft.VisualStudio.TextManager.Interop.TextSpan[][out] Devuelve un intervalo de texto que contiene la extensión de la instrucción en la que la ejecución detendría si el punto de interrupción se estableció.
Valor devuelto
Tipo: Int32
si el método tiene éxito, devuelve S_OK.Si se produce un error, devuelve un código de error.
Comentarios
Prototipo COM
de textmgr.idl:
HRESULT IVsLanguageDebugInfo::ValidateBreakpointLocation(
[in] IVsTextBuffer *pBuffer,
[in] long iLine,
[in] long iCol, ]
[out] TextSpan *pCodeSpan
);
Este método valida la posición especificada como un lugar para establecer un punto de interrupción sin tener que cargar el depurador. Si la ubicación es válida, el intervalo se completa con la extensión de la instrucción en la que la ejecución detendría. Si la posición se sabe que no contener código, este método devuelve S_FALSE. Si el método, el punto de interrupción se establece, hasta que finalice la validación durante el inicio del depurador.
Advertencia
Incluso si no piensa admitir el método de ValidateBreakpointLocation pero el lenguaje admite puntos de interrupción, debe implementar este método y devolver un intervalo que contenga la línea y la columna especificadas; si no, los puntos de interrupción no se pueden establecer en cualquier lugar excepto la línea 1.Puede devolver E_NOTIMPL para indicar que no admite de otra manera este método pero el intervalo debe establecerse siempre.El ejemplo muestra cómo realizar esto.
Ejemplos
A continuación se muestra un ejemplo parcial de cómo este método se puede implementar. En este ejemplo se muestra cómo establecer el intervalo en un valor predeterminado para que los puntos de interrupción funciona correctamente.
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.TextManager.Interop;
namespace MyLanguagePackage
{
public class MyLanguageService : IVsLanguageInfo, IVsLanguageDebugInfo
{
public int ValidateBreakpointLocation(IVsTextBuffer buffer,
int line,
int col,
TextSpan[] pCodeSpan)
{
int retval = VSConstants.E_NOTIMPL;
if (pCodeSpan != null)
{
// Make sure the span is set to at least the current
// position by default.
pCodeSpan[0].iStartLine = line;
pCodeSpan[0].iStartIndex = col;
pCodeSpan[0].iEndLine = line;
pCodeSpan[0].iEndIndex = col;
}
if (buffer != null)
{
// Use your parser to obtain the span that describes the
// the code containing the specified position. If the span
// is valid, return S_OK with the valid span; otherwise,
// returns S_FALSE (leaving the default span alone).
//
// GetCodeSpanForLocation() is a helper function not shown.
retval = VSConstants.S_FALSE;
TextSpan span = new TextSpan();
if (GetCodeSpanForLocation(buffer, line, col, out span))
{
pCodeSpan[0] = span;
retval = VSConstants.S_OK;
}
}
return retval;
}
}
}
Seguridad de .NET Framework
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.
Vea también
Referencia
Microsoft.VisualStudio.TextManager.Interop (Espacio de nombres)