Freigeben über


IVsLanguageDebugInfo.ValidateBreakpointLocation-Methode

Überprüft die angegebenen Position als Position, einen Haltepunkt festzulegen.

Namespace:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)

Syntax

'Declaration
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

Parameter

  • iLine
    Typ: Int32

    [in] Nummer der Zeile, die den Haltepunkt enthält.

  • iCol
    Typ: Int32

    [in] Nummer der Spalte, die den Haltepunkt enthält.

Rückgabewert

Typ: Int32
Wenn die Methode erfolgreich ausgeführt, gibt sie S_OKzurück.Bei einem Fehler wird ein Fehlercode zurückgegeben.

Hinweise

COM-Signatur

Von textmgr.idl:

HRESULT IVsLanguageDebugInfo::ValidateBreakpointLocation(
   [in] IVsTextBuffer *pBuffer, 
   [in] long iLine, 
   [in] long iCol, ]
   [out] TextSpan *pCodeSpan
);

Diese Methode überprüft die angegebenen Position als Ort, um einen Haltepunkt festzulegen, ohne den Debugger zu laden. Wenn der Pfad gültig ist, wird die Spanne mit dem Umfang der Anweisung eingetragen, an der die Ausführung beendet werden kann. Wenn die Position, keinen Code enthalten soll bekannt ist, gibt diese Methode S_FALSEzurück. Wenn die Methode fehlschlägt, wird der Haltepunkt während der Validierung während des Debuggers starts festgelegt.

Warnung

Selbst wenn Sie nicht beabsichtigen, die ValidateBreakpointLocation-Methode zu unterstützen, aber die Sprache unterstützt Haltepunkte, müssen Sie diese Methode implementieren und eine Spanne zurück, die die angegebene Zeile und die Spalte enthält. Andernfalls können Haltepunkte nicht nirgends außer Zeile 1 festgelegt werden.Sie können E_NOTIMPL zurückgeben, um anzugeben, dass Sie nicht anderweitig diese Methode unterstützen, aber die Spanne immer festgelegt werden muss.Das Beispiel zeigt, wie dieses durchgeführt werden kann.

Beispiele

Im Folgenden ein partielles Beispiel dafür, wie diese Methode implementiert werden kann. Dieses Beispiel zeigt, wie die Spanne auf einen Standardwert festgelegt werden, damit arbeiten Haltepunkte korrekt angezeigt.

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;
        }
    }
}

.NET Framework-Sicherheit

Siehe auch

Referenz

IVsLanguageDebugInfo Schnittstelle

Microsoft.VisualStudio.TextManager.Interop-Namespace