IVsLanguageDebugInfo.ValidateBreakpointLocation, méthode
Valide la position donnée comme emplacement pour définir un point d'arrêt.
Espace de noms : Microsoft.VisualStudio.TextManager.Interop
Assembly : Microsoft.VisualStudio.TextManager.Interop (dans Microsoft.VisualStudio.TextManager.Interop.dll)
Syntaxe
'Déclaration
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
Paramètres
pBuffer
Type : Microsoft.VisualStudio.TextManager.Interop.IVsTextBuffer[in] l'interface d'IVsTextBuffer pour la mémoire tampon de texte contenant le point d'arrêt.
iLine
Type : Int32[in] numéro de la ligne contenant le point d'arrêt.
iCol
Type : Int32[in] numéro de la colonne contenant le point d'arrêt.
pCodeSpan
Type : array<Microsoft.VisualStudio.TextManager.Interop.TextSpan[][] retourne une étendue de texte contenant l'étendue de l'instruction à laquelle l'exécution cesserait si le point d'arrêt étaient définis.
Valeur de retour
Type : Int32
Si la méthode réussit, elle retourne S_OK.En cas d'échec, un code d'erreur est retourné.
Notes
Signature de COM
De textmgr.idl :
HRESULT IVsLanguageDebugInfo::ValidateBreakpointLocation(
[in] IVsTextBuffer *pBuffer,
[in] long iLine,
[in] long iCol, ]
[out] TextSpan *pCodeSpan
);
Cette méthode valide la position donnée comme emplacement pour définir un point d'arrêt sans devoir charger le débogueur. Si l'emplacement est valide, l'étendue est terminée avec l'étendue de l'instruction à laquelle l'exécution cesserait. Si la position est connue pour ne pas contenir code, des retours S_FALSE de cette méthode. Si la méthode échoue, le point d'arrêt est défini, attendant la validation pendant le démarrage de débogueur.
Avertissement
Même si vous n'envisagez pas de prendre en charge la méthode d'ValidateBreakpointLocation mais votre langage prend en charge des points d'arrêt, vous devez appliquer cette méthode et retourner une étendue qui contient la ligne et la colonne spécifiées ; sinon, des points d'arrêt ne peuvent pas être définis n'importe où à l'exception de la ligne 1.Vous pouvez retourner E_NOTIMPL pour indiquer que vous ne prenez en charge pas sinon cette méthode mais l'étendue doit toujours être définie.L'exemple montre comment procéder.
Exemples
Voici un exemple partiel de la façon dont cette méthode peut être implémentée. Cet exemple montre comment définir l'étendue à une valeur par défaut afin que les points d'arrêt fonctionnent correctement.
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;
}
}
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, voir Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.