Free build (Retail build):
Checked build (Debug build):
- DBG 被定義為 1
- 關閉編譯器最佳化
- 這些 macro 有被定義, 可使用: ASSERT, ASSERTMSG, KdBreakPoint, KdBreakPointWithStatus, KdPrint, 及 KdPrintEx
- 執行慢, 潛在的 timing 問題不易發現(race conditions, deadlocks)
在 checked build 時, race 或 deadlock 等 timing 問題不易被發現, 因此想要在發生時印出點訊息來看看, 卻也都看不到訊息, 這時我們就必須回到 free build, 利用 KeBugCheck 或 KeBugCheckEx 來引發 BSOD, 並丟出一些訊息, 雖然只能丟數字, 但也堪用.
沒有留言:
張貼留言