程式的終極真相來源就是它的執行過程。當程式運行時,一切都會浮現:正確性、CPU 與記憶體使用、與有問題的函式庫或作業系統的互動,甚至硬體問題。然而,這個真相來源轉瞬即逝,以每秒數十億條指令的速度奔向遺忘。更糟的是,要捕捉這些真相往往是一件棘手的事。

本篇介紹六種 runtime debugging 技術:透過建構測試案例定位錯誤、設定快速失敗機制、檢查應用程式日誌檔、分析系統與程序的效能特徵、追蹤程式碼的執行過程,以及使用動態程式分析工具。這些技術讓你得以窺探程式的執行時行為,從而找出困擾你的 bug。

測試、應用程式日誌和監控工具是你在 runtime 層面進行除錯的三大支柱。善用這些工具,你就能從程式實際運行的行為中獲取第一手的除錯線索。