符號檔案是偵錯程式工作的重要依據,對很多除錯功能都起著重要作用,例如棧回溯、源**級跟蹤、變數觀察等等。符號檔案大多是二進位制的,而且不同編譯器使用的檔案格式有所不同。
symview工具用來顯示符號檔案中包含的符號表和符號資料。目前支援微軟的visual c/c++和c#編譯器產生的dbg格式的符號檔案和pdb格式的符號檔案。
symview提供了以下多種方式來檢視或者搜尋符號檔案的內容:
下圖是symview的乙個截圖,左側提供了上面介紹的5種觀察檢視。右側上方的網格視窗用於顯示左側選中**或者符號類的所有資料行或者符號。右側下方用於顯示上方選中行的子符號或者相關資訊(屬性)。
最下方的視窗使用者顯示symview程式自身的除錯資訊,可能包含它工作過程中遇到的異常或者錯誤情況。
symview是基於微軟的diasdk開發的。diasdk是debug inte***ce access sdk的簡稱。以visual studio 2005為例,diasdk預設被安裝在如下目錄中:
c:/program files/microsoft visual studio 8/dia sdk
使用dia元件的方法與使用其它com元件一樣,先要初始化com支援庫,然後建立介面的例項,即:
hr = coinitialize(null);描述符號的主要介面是idiasymbol,它有上百個屬性,對應於不同的符號資訊。msdn中描述了dia介面,儘管不夠詳盡,但是涵蓋了幾乎所有介面。// obtain access to the provider
hr = cocreateinstance(__uuidof(diasource),//clsid_diasource,
null,
clsctx_inproc_server,
__uuidof(idiadatasource),
(void **) &m_pdiadatasource);
if(hr != s_ok)
包含symview.exe的壓縮包(216kb)symview.zip
包含msdia80.dll的壓縮包(639kb)msdia80.zip
swift 屬性觀察器
用來監視屬性值變化,當屬性值發生改變時可以對此作出響應。可以為除了延遲儲存屬性之外的其他儲存屬性新增屬性觀察器,也可以通過過載屬性的方式為繼承的屬性 包括儲存屬性和計算屬性 新增屬性觀察器。swift 屬性擁有setget語法 var score int set 複製 willset和didset分...
Swift 屬性觀察器
1 簡單介紹 屬性觀察器監控和響應屬性值的變化,每次屬性被設定值的時候都會呼叫屬性觀察器,甚至新的值和現在的值相同的時候也不例外。可以為除了延遲儲存屬性之外的其他儲存屬性新增屬性觀察器,也可以通過過載屬性的方式為繼承的屬性 包括儲存屬性和計算屬性 新增屬性觀察器。注意 不需要為無法過載的計算屬性新增...
設計模式 觀察器模式(觀察者模式)
乙個觀察器的例子 visual studio 編譯執行 觀察器 觀察者 模式 被觀察者呼叫觀察器的 函式。symbian中大量使用觀察器。在symbian中觀察器都是m類 乙個介面 如mcoecontrolobserver。使用如下 實現觀察器 class ccontroobserver publi...