談組態管理 (Configuration Management)

August 26th, 2009

Windows 除錯的第一步一文中,我們提到了如何利用 map 檔以及組合語言列表來做分析。這裡有個基本假設: 您的程式開發環境有個良好的組態管理 (Configuration Management, CM)。很不幸的是,這通常是不成立的 🙂

CM 說穿了就是「環境控制」:我們除了要能夠追蹤程式碼的變動之外,也必須要能夠追蹤最後編譯出來的成品以及成品所對應的除錯資訊 (map 檔、組語檔、PDB 檔)。CM 要能夠做到在任意時間都可以重現任意的版本,所以我們也必須要可以隨時還原編譯的環境 (也就是整部機器的 image),對於成品和原始程式碼版本之間的對應 (labeling) 也要能夠做到。目前的 source control system 和伺服器虛擬化都有能力實現這些目標,例如 Perforce 和 SVN 的版本控制,VMWare ESX 提供的虛擬化管理等等。

除此之外,Visual Studio 從 2005 年的版本開始引入了 project property sheets 的觀念,讓我們可以更好地控制各個不同 project 之間的 CM。良好的 CM 應該也包括一組通用的 property sheets,如此一來就不必針對每個 project 去做一些瑣碎的設定,也降低了出錯的可能。在我們的 HelloCrash 範例中,我們便使用了property sheets 來控制一些常用的東西,像是 compiler warning level,map file generation 等等,這些都可以在日後重複地使用。您可以從 CodePlex 下載我們的範例。

約耳大神在他的約耳測試中所問的第一題就是「你有使用原始碼控制系統嗎?」事實上這一題應該要改成「你家的 CM 有沒有弄對?」才是。我們在後續的文章中會漸漸為您披露一個好的 CM 可以為您帶來許多強大而好用的功能,這通常意味著小師程工可以多花點時間在有意義的事情上頭,例如打打 game 什麼的,會比加班有趣一點。

C++/C#, 技術文章 | Comments Jump to the top of this page

Comments are closed.

隨便寫寫大家隨便看看的不出名小格子

舊文索引

站內管理