搭建除錯符號伺服器

2021-08-13 08:59:46 字數 2473 閱讀 9069

開發團隊中,隨著版本的增多,使用者的增多,修改遺留問題變得異常困難,pdb是個好東西,符號伺服器更是個好東西。給自己的開發團隊建立乙個簡單的符號伺服器會損失不好,俗話說得好嘛,「磨刀不誤砍柴工」。

基本需求

硬體一台,要求很簡單:有作業系統,硬碟足夠足夠足夠大(請注意用了三個足夠)

工具軟體:symstore.exe(debugging tools for windows中帶有)

工程的屬性中設定了輸出除錯資訊,也就是會產生pdb檔案

新增符號版本

命令列格式

symstore add /r /f "pdb file path" /s "symbol server path" /t "product name" /v "product version" /c "comment"

命令列舉例

symstore add /r /f d:\develop\dlsolution\pdb\*.pdb /s 

\\symserver\symbols /t "dylantoolkits" /v "5.1.34.090710" /c ""

引數簡單說明

symstore add 代表執行新增一組symbol到符號伺服器的命令

/r 遞迴搜尋/f所指定的目錄中的所有檔案

/f 需要查詢pdb檔案的目錄,按照標準檔名通配方式

/s 符號伺服器目錄

/t 產品名稱,此名稱會出現在history.txt中

/v 產品版本,可以通過該版本來建立同原始碼庫的聯絡(除錯的時候你總得看源**吧,用這個版本號去檢索你的原始碼庫,找到合適的原始碼),此名稱會出現在history.txt中

/c 注釋,愛寫啥寫啥,此名稱也是會出現在history.txt中

影響會在伺服器目錄下的指定pdb目錄下新增乙個新目錄,該目錄按照一定的演算法(演算法自己另外去google)命名,然後在下邊放置剛剛新增的pdb檔案,比如,如果有乙個dlxmlkitu.pdb檔案被執行上述命令時發現,那麼執行完成後,會將該檔案拷貝到:

\\symserver\symbols\dlxmlkitu.pdb\68eb3547bcc044cb9fde4cd4b6aa983b1\dlxmlkitu.pdb。當然,會為每乙個找到的pdb檔案都拷貝一次,如果相同的pdb檔案已經存在,則會覆蓋伺服器上之前的檔案。(每個pdb會增加乙個影響)

會在伺服器的管理目錄下(形如

\\symserver\symbols\000admin)生成乙個新的id檔案,比如「0000000002」,無副檔名。該檔案記錄此次之行add操作增加的所有pdb檔案,每行乙個pdb記錄,指明這個pdb檔案的本地源和伺服器目標位置,形如: 

"dlxmlkitu.pdb\68eb3547bcc044cb9fde4cd4b6aa983b1","d:\develop\dlsolution\pdb\dlxmlkitu.pdb"

會修改歷史記錄檔案(

\\symserver\symbols\000admin\history.txt),該檔案每行代表一次add或者del操作,如執行上述命令列,產生的歷史記錄行資訊形如:

0000000002,add,file,07/10/2009,14:28:09,"dylantoolkits","5.1.34.090710","", 分別記錄執行此次操作影響的id號,操作型別,日期時間,產品名稱,版本號,備註資訊;

會影響其他位於000admin目錄下的檔案,可以不關心。

刪除符號版本

命令列格式:

symstore del /i "operate id number" /s "symbol server path"

命令列舉例:

symstore del /i 0000000001 /s 

\\symserver\symbols

引數簡單說明

symstore del 代表執行刪除一批pdb檔案的操作

/i 需要刪除的pdb檔案,執行新增這批檔案是產生的id號,位於admin目錄中

/s 符號伺服器目錄

影響會將伺服器的管理目錄下(形如

\\symserver\symbols\000admin)的指定id號的檔案改名,在名字後邊加字尾

.deleted,形如,0000000001.deleted;

根據id號檔案中的每一行,刪除符號伺服器目錄下的指定檔案,比如,會根據0000000001中的某一行

"dlxmlkitu.pdb\8a4d71f4e9964fe5a36000427e10112b1","d:\develop\dlsolution\pdb\dlxmlkitu.pdb",刪除檔案:

\\symserver\symbols\dlxmlkitu.pdb\8a4d71f4e9964fe5a36000427e10112b1\dlxmlkitu.pdb;

修改歷史記錄檔案(

\\symserver\symbols\000admin\history.txt),增加一行記錄,形如:

0000000003,del,0000000001;

會影響其他位於000admin目錄下的檔案,可以不關心。 

NuGet 符號伺服器

在新的 visualstudio 支援使用 nuget 符號伺服器,可以支援新的 portable pdb 除錯符號的庫,本文告訴大家如何打包上傳帶符號的庫和使用符號伺服器 在 2018 的 11 月微軟支援上傳帶符號的包到 nuget.org 符號伺服器,在使用 visual studio 201...

伺服器搭建

問題一 com無法訪問到伺服器 問題二 將 com 301重定向到 www.com 解決方案 在httpd.conf檔案中 追加 如下內容 options followsymlinks rewriteengine on rewritecond com rewriterule l,r 301 2 禁止...

搭建伺服器

零基礎搭建伺服器 我用的是ubuntu,所有 sudo apt get install apache2 配置php的時候已經配好了,這裡就不重複配置了 安裝apxs 安裝過php,所以這個也忽略掉 sudo apt get install apache2 dev apxs是乙個為apache超文字傳...