Metodo IVsLanguageDebugInfo.ValidateBreakpointLocation
Convalida la posizione specificata come posizione per impostare un punto di interruzione.
Spazio dei nomi: Microsoft.VisualStudio.TextManager.Interop
Assembly: Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)
Sintassi
'Dichiarazione
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
Parametri
pBuffer
Tipo: Microsoft.VisualStudio.TextManager.Interop.IVsTextBuffer[in] IVsTextBuffer interfaccia per il buffer di testo contenente il punto di interruzione.
iLine
Tipo: Int32[in] Numero della riga contenente il punto di interruzione.
iCol
Tipo: Int32[in] Numero della colonna che contiene il punto di interruzione.
pCodeSpan
Tipo: array<Microsoft.VisualStudio.TextManager.Interop.TextSpan[][out] Restituisce un intervallo di testo che contiene l'ambito dell'istruzione nel quale l'esecuzione si arresterebbe se il punto di interruzione è impostato.
Valore restituito
Tipo: Int32
Se il metodo ha esito positivo, restituisce S_OK.Se non riesce, restituisce un codice di errore.
Note
Firma COM
da textmgr.idl:
HRESULT IVsLanguageDebugInfo::ValidateBreakpointLocation(
[in] IVsTextBuffer *pBuffer,
[in] long iLine,
[in] long iCol, ]
[out] TextSpan *pCodeSpan
);
Questo metodo convalida la posizione specificata come posizione per impostare un punto di interruzione senza che sia necessario caricare il debugger. Se la posizione è valida, pertanto l'intervallo viene riempita con ambito dell'istruzione nel quale l'esecuzione si arresterebbe. Se il percorso è conosciuto non contengano il codice, questo metodo restituisce S_FALSE. Se il metodo non riesce, il punto di interruzione è impostato, in attesa di convalida durante l'avvio del debugger.
Avviso
Anche se non si intende supportare ValidateBreakpointLocation il metodo ma il linguaggio supporta i punti di interruzione, è necessario implementare questo metodo e restituire un intervallo che contiene la riga e la colonna specificata; in caso contrario, i punti di interruzione non possono essere impostati in qualsiasi posizione eccetto la riga 1.È possibile restituire E_NOTIMPL per indicare che non supportate in caso contrario questo metodo ma l'intervallo è necessario impostare sempre.Nell'esempio viene illustrata tale operazione.
Esempi
Di seguito è riportato un esempio parziale di come questo metodo può essere implementato. In questo esempio viene illustrato come impostare l'intervallo a un valore predefinito in modo dai punti di interruzione vengono eseguiti correttamente.
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;
}
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per altre informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.