關於建設symbol store的建議

2021-04-28 02:00:45 字數 3720 閱讀 4348

一、

symbol store

的需求分析:

1

、我們現在的除錯環境嚴重依賴開發人員自己使用的開發環境,缺點在於其他人要進行除錯要麼搭建乙個同樣的環境,嚴重地占去大家不必要花費的工作時間,進一步帶來的問題是各個版本的源**流落各處,易出問題,要麼就只有交給原開發人員,同樣帶了嚴重的交流時間開銷,而且不僅原開發人員的工作會被打斷,而且需求人還要在這個過程中等待。

2、即便是開發人員自己面對不同版本的除錯,也是乙個令人撓頭的事情,即便是現在我們儲存了

map檔案,但是除錯的便利與效率,相信也是大家希望進一步提高的。

如何改變現有的除錯難的問題,並且提高大家的除錯效率,應該是乙個需要考慮的問題。

二、搭建

symbol store

的調研:

使用過ms的除錯符號伺服器的同事,大概已經領略到除錯符號伺服器的高效率。經過調研,可以確認我們可以搭建自己的除錯符號伺服器,相關事項羅列如下:

1、如何設定你的

vc project 在

vc的project settings

對話方塊上,選擇你要設定的

project(

如果有多個

poject的話)

,選擇你要設定的

build

選項(一般為

win32 release

),在link

頁上,category

選擇general

,然後選擇

generate debug info

,或者category

選擇debug

,然後選擇

debug info

,選擇microsoft format

。這樣如果生成不了

pdb,或者生成的

pdb有錯誤,同樣在vc的

project settings

對話方塊上,選擇你要設定的

project(

如果有多個

poject的話)

,選擇你要設定的

build

選項(一般為

win32 release

),在c/c++

頁上,category

選擇general

,在debug info

中,選擇

c7 compatible

或program database

你原有的優化等選擇都不必改變,這樣設定會產生乙個

pdb檔案,就是我們所需要的除錯符號了,這樣會導致你的

exe或

dll等生成模組會多出一定數目的位元組,不必擔心,這是鏈結器在你的模組裡加入了對這個

pdb的乙個指引,並沒有任何除錯資訊包含到你的模組。

2、如何變絕對路徑為相對路徑

前面講到在你的模組裡有乙個對

pdb的指引,有一點比較討厭,就是這個指引使用了絕對路徑——你

build

這個模組時的絕對路徑,我們要做得像

ms的一樣,去除這個絕對路徑,

ms提供乙個工具來做這件事,那就是

binplace

,它甚至可以讓你為使用你的介面的客戶提供受限的符號檔案,具體可參考

ms的幫助文件。

binplace -a -x -s%

stripped_path

%-n%

full_path

% %bin_path

%-r%

rootdestinationpath

%-:dest%

classpath%

使用時請替換

%stripped_path%、

%full_path%、

%bin_path%、

%rootdestinationpath%、

%classpath%

3、如何新增除錯符號到倉庫

請首先安裝

windbg

,然後使用如下指令碼:

set path=c:/program files/debugging tools for windows;%path%

symstore add /r /p /f%

your_pdb_path

%/*.*

/s%

symbol_store_path

%/t "ivtdriver"

使用時請替換

%your_pdb_path%,與

%symbol_store_path%

4、如何引用倉庫中的除錯符號

設定環境變數:

使用時,請注意替換

downstreamstore

,與symbol_store_path

這樣,在以後使用

windbg

除錯程式或分析

dmp檔案時,就可以自動取得我們自己的除錯符號了。

三、建立

symbol store

的步驟:

1、

確定symbol store

的路徑,申請伺服器空間,用

web是個好主意,用共享資料夾也不錯

2、修改現有

vc project

的設定,生成

pdb(請不要丟了

map設定,沒準兒還有用)

3、應用binplace

工具,讓

pdb檔案中的絕對路徑變相對路徑

4、應用symstore

工具,將

pdb檔案新增到

symbol store

四、應用

symbol store

的步驟:

1

、設定環境變數_nt_symbol_path,引用我們自己的

symbol store

五、總結:

結合我前面提出的

daily build script

,大家現在可以在裡面提供自動向symbol store

新增

pdb的指令碼,這樣一定會很爽,呵呵。

關於建設symbol store的建議

關於建設 symbol store 的建議 2006 12 21 一 symbol store 的需求分析 1 我們現在的除錯環境嚴重依賴開發人員自己使用的開發環境,缺點在於其他人要進行除錯要麼搭建乙個同樣的環境,嚴重地占去大家不必要花費的工作時間,進一步帶來的問題是各個版本的源 流落各處,易出問題...

關於驅動模組自動建立裝置節點

linux 2.6 引入了動態裝置管理,用udev作為裝置管理器 應用在x86 相比之前的靜態裝置管理,在使用上更加方便靈活。udev根據sysfs系統提供的裝置資訊實現對 dev目錄下裝置節點的動態管理,包括裝置節點的建立 刪除等 引入udev自動建立裝置節點後,比如在我們使用的insmod le...

關於部落格建設的一些小建議

張存超個人部落格 對於我們這些技術人員來說,到了一定的時候都希望可以做乙個部落格,來總結 記錄一下自己的學習 技術 和工作。就我自己做部落格並結合自己這兩天通宵達旦改良自己部落格的經歷,談一下自己的一些小理解和小建議。定位做好之後,就可以開始做了,其實最重要的過程就是前期的準備工作了,以後就是根據自...