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 | |
---|---|---|
AllBreakpointsLastHit | Son anda isabet ilişkili kesme noktaları topluluğu alır. | |
BreakpointLastHit | Son kesme isabet alır. | |
Breakpoints | Kesme noktaları topluluğu alır. | |
CurrentMode | Hata ayıklayıcı tümleşik geliştirme ortamını (IDE) bağlamında geçerli modu alır. | |
CurrentProcess | Ayarlar veya etkin işlem alır. | |
CurrentProgram | Ayarlar veya etkin programdan alır. | |
CurrentStackFrame | Ayarlar veya geçerli yığın çerçevesi alır. | |
CurrentThread | Ayarlar veya geçerli iş parçacığı Ayıklanacak alır. | |
DebuggedProcesses | Şu anda Ayıklanacak işlemlerin listesini alır. | |
DTE | Üst düzey bir geniþletilebilirlik nesnesi alır. | |
HexDisplayMode | Alır veya onaltılı veya onlu biçimde çıktı deyimleridir olup olmadığını ayarlar. | |
HexInputMode | Alır veya ifadeler, onaltılı veya onlu biçimde değerlendirilir olup olmadığını ayarlar. | |
Languages | Hata Ayıklayıcı'yı destekleyen dillerin listesini alır. | |
LastBreakReason | Bir program kesildi son neden alır.Program verir çalışıyorsa, DBG_REASON_NONE. | |
LocalProcesses | Şu anda bu makinede çalışan işlemlerin listesini alır. | |
Parent | Hemen üst nesnesi alır bir Debugger nesne. |
Üst
Yöntemler
Ad | Açıklama | |
---|---|---|
Break | Böylece geçerli durumunu analiz edilebilir, yürütmeye Ara vermek verilen bir işlemi neden olur. | |
DetachAll | Tüm eklenmiş programlardan ayırır. | |
ExecuteStatement | Belirtilen deyimini yürütür. TreatAsExpression Bayrağı true, sonra dize bir ifade olarak değerlendirilir ve çıktıyı komut penceresine gönderilir. | |
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. | |
Go | Geçerli deyimin program yürütülürken başlatır. | |
RunToCursor | Programı kaynak dosyası imlecinin geçerli konumuna çalıştırır. | |
SetNextStatement | Sonraki yönerge geçerli kaynak dosyadaki İmleç konumuna göre yürütülmek üzere ayarlar. | |
StepInto | Sonraki işlev çağrısı, mümkünse içine adım atar. | |
StepOut | Geçerli işlevden çıkar. | |
StepOver | Sonraki işlev çağrısının üzerinden adımları. | |
Stop | Hata ayıklama, sonlandırma veya ayırma iliştirilmiş tüm işlemleri durdurur. | |
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;
}