我們以perforce為例子來做source indexing
1. 安裝Debugging Tools for Windows
2. 設定環境變數P4CLIENT為你的workspace,以本例來說是client_localhost_1666
執行p4 info,確定"Client name"是你的workspace,而且"Server address"是指到正確的perfroce server,以本例來說,是指定到"localhost:1666"
3. 打開srcsrv.ini檔案(C:\Program Files\Debugging Tools for Windows\srcsrv),把變數MYSERVER指定為"localhost:1666"
4. 登入perforce取得token
5. 執行ssindex.cmd來做source indexing,index資料會放在pdb檔的srcsrv區塊
ssindex.com -system=p4 -source=d:\samplecode\src -symbols=d:\samplecode\src\release
-system是設定source indexing為perforce
-source是指定你source code所放的位置
-symbols是指定pdb檔所在的位置
6. 執行pdbstr來檢查結果
pdbstr.exe -r -p:d:\samplecode\src\release\sampleexe.pdb -s:srcsrv
7. 把做好的pdb檔放到symbol server上
接下來我們要如何使用?
1. copy srcsrv.ini到windbg的folder
2. 確定MYSERVER指定到localhost:1666
3. 在[trusted commands]中加上
p4.exe=C:\Program Files\Perforce\p4.exe
4. 執行windbg,設定好symbol server,當你在debug時,windbg就會幫你把source code從perforce捉下來,放在他的src folder
HTTP source server
我們也可以把source code 放在HTTP server上面,把HTTP server當做source server
1. 在做完source indexing之後,把source code extract 出來
walk.cmd d:\SampleCode\src\release\*.pdb srctool -x
extract出來的source code會放在MYSERVER的folder裡
2. 把MYSERVER整個folder放到HTTP server上,本例是放在http://localhost/source/目錄之下
3. 設定windbg有兩種方法
3.1 設定source file path 為srv*
然後修改windbg的srcsrv.ini,增加三個變數在[variables] section裡
SRCSRVCMD=
MY_SOURCE_ROOT=http://localhost/source
SRCSRVTRG=%my_source_root%\%var2%\%var3%\%var4%\%fnfile%(%var1%)
SRCSRVCMD=
MY_SOURCE_ROOT=http://localhost/source
SRCSRVTRG=%my_source_root%\%var2%\%var3%\%var4%\%fnfile%(%var1%)
3.2 直接設定source file path 為srv*http://localhost/source;
4. 再用windbg來debug,這時他就會從HTTP server上面捉下對應的source code
4. 再用windbg來debug,這時他就會從HTTP server上面捉下對應的source code