Debugger3 介面

定義

Debugger3 用來查閱和操作偵錯工具的狀態以及正在進行的程式。 Debugger3 取代 Debugger2Debugger 介面。

public interface class Debugger3 : EnvDTE80::Debugger2
public interface class Debugger3 : EnvDTE80::Debugger2
__interface Debugger3 : EnvDTE80::Debugger2
[System.Runtime.InteropServices.Guid("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
[System.Runtime.InteropServices.TypeLibType(4160)]
public interface Debugger3 : EnvDTE80.Debugger2
[<System.Runtime.InteropServices.Guid("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")>]
[<System.Runtime.InteropServices.TypeLibType(4160)>]
type Debugger3 = interface
    interface Debugger2
Public Interface Debugger3
Implements Debugger2
衍生
屬性
實作

範例

Imports System  
Imports EnvDTE  
Imports EnvDTE90  
Imports EnvDTE90  
Imports System.Diagnostics  

Public Module Module1  
    'This function returns true if the debugger is actively debugging.  
    Function IsDebugging() As Boolean  
        Dim debugger As EnvDTE90.Debugger3 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 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 "dte90.olb" raw_interfaces_only named_guids  
using namespace EnvDTE90;  
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(&pDebugger3)) &&   
            pDebugger3  
            != NULL){  
                dbgDebugMode mode;  
                if (SUCCEEDED(pDebugger3->get_CurrentMode(&mode))) {  
                    if (mode != dbgDesignMode) {  
                        printf("Debugger is active.\n");  
                        nRet = 1;  
                    }  
                    else {  
                        printf("Debugger is not active.\n");  
                    }  
                }  
            }  
        }  
    }  
    CoUninitialize();  
    return nRet;  
}  

備註

偵錯工具可透過物件的 DTE2 Debugger 屬性取得,如下列範例所示。 (IDE) 的每個互動式開發環境實例都有一個偵錯工具物件可用。

屬性

AllBreakpointsLastHit

取得最後一次同時叫用的繫結中斷點集合。

BreakpointLastHit

取得最後一個中斷點叫用。

Breakpoints

取得中斷點集合。

CurrentMode

取得 IDE 內容中偵錯工具目前的模式。

CurrentProcess

取得或設定使用中的處理序。

CurrentProgram

設定或傳回使用中的程式。

CurrentStackFrame

取得或設定目前的堆疊框架。

CurrentThread

取得或設定目前正在偵錯的執行緒。

DebuggedProcesses

取得正在偵錯的處理序清單。

DTE

取得最上層的擴充性物件。

ExceptionGroups

取得偵錯工具的例外狀況設定。 針對每個例外狀況,這些設定會決定偵錯工具是否要在中斷執行之前,讓程式碼有機會處理例外狀況。

ForceContinue

取得或設定值,這個值會決定當追蹤點或中斷點執行巨集完成時,偵錯工具要中斷或繼續執行。 建立追蹤點或中斷點時,使用者會在對話方塊中設定預設行為。 這個屬性可用來變更預設行為。

HexDisplayMode

取得或設定值,其指出運算式是否為十六進位或十進位格式的輸出。

HexInputMode

取得或設定值,其指出運算式是否以十六進位或十進位格式進行評估。

Languages

取得偵錯工具支援的語言清單。

LastBreakReason

取得程式中斷的最後一個原因。 如果程式正在執行,則會傳回 DBG_REASON_NONE

LocalProcesses

取得此電腦上目前執行的處理序清單。

OnlyLoadSymbolsManually

取得值,其決定是否手動或自動載入符號。 Visual Studio 使用者可以在 [ 選項 ] 對話方塊中判斷這項設定。 如需如何在 Visual Studio 中設定此值的詳細資訊,請參閱 如何:指定符號路徑

Parent

取得物件 () 的直屬父物件 Debugger3 DTE2

SymbolCachePath

取得字串,其包含當您從符號伺服器下載符號時,Visual Studio 所使用的符號快取路徑。 您可以在 [ 選項 ] 對話方塊中指定符號快取路徑。 如需詳細資訊,請參閱 如何:使用符號

SymbolPath

取得字串,其包含 Visual Studio 為偵錯所使用的 .PDB 符號檔案路徑。 Visual Studio 使用者可以在 [ 選項 ] 對話方塊中指定符號路徑。 如需詳細資訊,請參閱 如何:指定符號路徑

SymbolPathState

取得字串,其代表 Visual Studio 為偵錯所使用的 .PDB 符號檔案的所有符號路徑狀態。

Transports

取得支援的偵錯傳輸集合。

方法

Break(Boolean)

讓指定的處理序暫停執行,以分析其目前的狀態。

DetachAll()

中斷連結所有附加的程式。

ExecuteStatement(String, Int32, Boolean)

執行指定的陳述式。 如果 TreatAsExpression 旗標為 true ,則會將字串解釋為運算式,並將輸出傳送至 命令視窗

GetExpression(String, Boolean, Int32)

根據目前的堆疊框架來評估運算式。 如果運算式可以剖析但不可評估,則會傳回物件,但不包含有效值。

GetExpression2(String, Boolean, Boolean, Int32)

根據目前的堆疊框架來評估運算式。 如果運算式可以剖析但不可評估,則會傳回物件,但不包含有效值。 這個成員函式類似于, GetExpression(String, Boolean, Int32) 但使用額外的布林值參數,它可以設定為 true,表示要將運算式評估為語句。

GetProcesses(Transport, String)
Go(Boolean)

從目前的陳述式開始執行程式。

RunToCursor(Boolean)

將程式執行到原始程式檔游標目前的位置。

SetNextStatement()

根據目前原始程式檔中的游標位置,來設定要執行的下一個指令。

SetSymbolSettings(String, String, String, Boolean, Boolean)

為 Visual Studio 針對偵錯所使用的 .PDB 符號進行各種設定,並強制重新載入所有符號。

StepInto(Boolean)

逐步執行下一個函式呼叫 (如有可能)。

StepOut(Boolean)

跳離目前的函式。

StepOver(Boolean)

不進入下一個函式呼叫。

Stop(Boolean)

停止偵錯,並從所有附加的處理序終止或中斷連結。

TerminateAll()

終止目前執行的所有偵錯處理序。

WriteMinidump(String, dbgMinidumpOption)

適用於