Aracılığıyla paylaş


Debugger Arabirim

Debugger Nesne interrogate ve hata ayıklayıcı ve Ayıklanacak program durumunu denetlemek için kullanılır.

Ad alanı:  EnvDTE
Derleme:  EnvDTE (EnvDTE.dll içinde)

Sözdizimi

'Bildirim
<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")> _
Public Interface Debugger
[GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface Debugger
[GuidAttribute(L"338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface class Debugger
[<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")>]
type Debugger =  interface end
public interface Debugger

Debugger türü aşağıdaki üyeleri ortaya koyar.

Özellikler

  Ad Açıklama
Genel özellik AllBreakpointsLastHit Son anda isabet ilişkili kesme noktaları topluluğu alır.
Genel özellik BreakpointLastHit Son kesme isabet alır.
Genel özellik Breakpoints Kesme noktaları topluluğu alır.
Genel özellik CurrentMode Hata ayıklayıcı tümleşik geliştirme ortamını (IDE) bağlamında geçerli modu alır.
Genel özellik CurrentProcess Ayarlar veya etkin işlem alır.
Genel özellik CurrentProgram Ayarlar veya etkin programdan alır.
Genel özellik CurrentStackFrame Ayarlar veya geçerli yığın çerçevesi alır.
Genel özellik CurrentThread Ayarlar veya geçerli iş parçacığı Ayıklanacak alır.
Genel özellik DebuggedProcesses Şu anda Ayıklanacak işlemlerin listesini alır.
Genel özellik DTE Üst düzey bir geniþletilebilirlik nesnesi alır.
Genel özellik HexDisplayMode Alır veya onaltılı veya onlu biçimde çıktı deyimleridir olup olmadığını ayarlar.
Genel özellik HexInputMode Alır veya ifadeler, onaltılı veya onlu biçimde değerlendirilir olup olmadığını ayarlar.
Genel özellik Languages Hata Ayıklayıcı'yı destekleyen dillerin listesini alır.
Genel özellik LastBreakReason Bir program kesildi son neden alır.Program verir çalışıyorsa, DBG_REASON_NONE.
Genel özellik LocalProcesses Şu anda bu makinede çalışan işlemlerin listesini alır.
Genel özellik Parent Hemen üst nesnesi alır bir Debugger nesne.

Üst

Yöntemler

  Ad Açıklama
Genel yöntem Break Böylece geçerli durumunu analiz edilebilir, yürütmeye Ara vermek verilen bir işlemi neden olur.
Genel yöntem DetachAll Tüm eklenmiş programlardan ayırır.
Genel yöntem ExecuteStatement Belirtilen deyimini yürütür. TreatAsExpression Bayrağı true, sonra dize bir ifade olarak değerlendirilir ve çıktıyı komut penceresine gönderilir.
Genel yöntem GetExpression Geçerli yığın çerçevesini temel bir ifade olarak değerlendirilir.İfade ayrıştırılır, ancak değil değerlendirilen nesnenin döndürülür ancak geçerli bir değer içermez.
Genel yöntem Go Geçerli deyimin program yürütülürken başlatır.
Genel yöntem RunToCursor Programı kaynak dosyası imlecinin geçerli konumuna çalıştırır.
Genel yöntem SetNextStatement Sonraki yönerge geçerli kaynak dosyadaki İmleç konumuna göre yürütülmek üzere ayarlar.
Genel yöntem StepInto Sonraki işlev çağrısı, mümkünse içine adım atar.
Genel yöntem StepOut Geçerli işlevden çıkar.
Genel yöntem StepOver Sonraki işlev çağrısının üzerinden adımları.
Genel yöntem Stop Hata ayıklama, sonlandırma veya ayırma iliştirilmiş tüm işlemleri durdurur.
Genel yöntem TerminateAll Tüm işlemleri sonlandırır.

Üst

Notlar

Hata ayıklayıcısı aracılığıyla kullanılabilir DTE yoluyla nesne kendi Debugger özelliği, aşağıdaki örnekte gösterildiği gibi.Bir hata ayıklayıcı nesne geliştirme ortamı her örneği için kullanılabilir.

Örnekler

Aşağıdaki örnekte, hata ayıklayıcı nesne kullanımı gösterilmiştir.

Imports EnvDTE
Imports System.Diagnostics

Public Module Module1
    ' This function returns true if the debugger is actively debugging.

    Function IsDebugging() As Boolean
        Dim debugger As EnvDTE.Debugger
        debugger = DTE.Debugger

        If (debugger Is Nothing) Then
            MsgBox("Debugger doesn't exist! Fatal error.")
            IsDebugging = false
        Else
            IsDebugging = (debugger.CurrentMode <> dbgDebugMode.dbgDesignMode)
        End If
    End Function
End Module
// The following small C++ program can be run from the command line.
// It detects whether an instance of Visual Studio is currently 
// running,and if so, prints a message stating whether its debugger
// is actively debugging.

#include <stdio.h>
#import "dte.olb" raw_interfaces_only named_guids

using namespace EnvDTE;

int main(void)
{
    int nRet = 0;

    CoInitialize(NULL);

    IUnknownPtr pUnk;
    GetActiveObject(CLSID_DTE, NULL, &pUnk);

    if (pUnk == NULL) {
        printf ("No instance of Visual Studio is running.\n");
    }
    else {
        _DTEPtr pDTE = pUnk;
        if (pDTE) {
            DebuggerPtr pDebugger;
            if (SUCCEEDED(pDTE->get_Debugger(&pDebugger)) && pDebugger != NULL){
                dbgDebugMode mode;
                if (SUCCEEDED(pDebugger->get_CurrentMode(&mode))) {
                    if (mode != dbgDesignMode) {
                        printf("Debugger is active.\n");
                        nRet = 1;
                    }
                    else {
                        printf("Debugger is not active.\n");
                    }
                }
            }
        }
    }

    CoUninitialize();

    return nRet;
}

Ayrıca bkz.

Başvuru

EnvDTE Ad Alanı

Diğer Kaynaklar

Otomasyon nesne modeli şeması

Visual Studio'da hata ayıklama