除錯事件與異常的關係

2021-06-16 14:10:59 字數 963 閱讀 4322

1.異常是除錯事件的一種

2. windows 定義了 9 類除錯事件,分別用以下 9 個常量來

表示:exception_debug_event(1)、create_thread_debug_event(2)、

create_process_debug_event(3)、exit_thread_debug_event (4)、

exit_process_debug_event(5)、load_dll_debug_event(6)、

unload_dll_debug_event(7)、output_debug_string_event(8)、rip_event

(9)。其中異常事件的**為 exception_debug_event(1)。

3.因為有很多種異常,所以異常事件又根據異常**分為很多個子類。其它事件都比較單純,

不再包含子類。常見的異常子類有: 

win32 異常,這是 windows 作業系統所定義的異常,其中主要是 cpu 產生的異常,典

型的有非法訪問、除零等。這類異常的異常**定義在 ntstatus.h 中。 

visual c++異常,這是 visual c++編譯器的 throw 關鍵字所丟擲的異常,throw 關鍵字調

用 raiseexception api 產生異常。所有這類異常的異常**都是 0xe06d7363(.msc)。 

託管異常,這是.net 程式使用託管方法丟擲的異常。所有這類異常的異常**都是

0xe0636f6d(.com)。 

其它異常,包括使用者程式直接呼叫 raiseexception api 丟擲的異常,以及其它 c++編譯

器丟擲的異常等。  

4.除了以上 9 類除錯事件,為了復用事件處理機制,偵錯程式定義了某些專門供除錯使用的事件,

比如 windbg 定義了用於喚醒處於睡眠狀態的偵錯程式的 wake debugger 事件。我們把這類事件通

常為偵錯程式事件。

委託與事件的關係

說道 委託 這個詞我們肯定都不會陌生吧,生活中 委託 就是請別人幫我們做事。程式中也是如此,委託機制是.net中特有的,我們可以將方法作為引數傳給委託,讓委託幫我呼叫執行方法。先來看看委託是如何定義的 訪問修飾符 delegate 返回值 委託名 引數 委託類似於c c 中的函式指標,但是它們又有一...

c 異常與除錯

參考 異常描述 std exception 該異常是所有標準 c 異常的父類 std bad alloc 該異常可以通過 new 丟擲。std bad cast 該異常可以通過 dynamic cast 丟擲。std bad exception 這在處理 c 程式中無法預期的異常時非常有用。std ...

Python(異常處理與程式除錯)

python標準庫的每個模組都使用了異常,異常在python中除了可以捕獲錯誤,還可以除錯程式。一 python中的異常 異常是指程式中的例外 違例情況。異常機制是指當程式出現錯誤後,程式的處理方法。異常機制提供了程式正常退出的安全通道。當錯誤出現後,程式的流程發生改變,程式的控制權轉移到異常處理器...