我試圖更多地使用windbg,並且我一直遇到符號緩存問題。我不清楚字符串的格式應該是什麼。_NT_SYMBOL_PATH格式
我有幾個要求:
- 使用微軟的服務器從我們的軟件,在\\ foo的存檔\ Build1234
- http://msdl.microsoft.com/download/symbols
- 使用的符號在C使用本地緩存:\ dev的\符號
\\ foo \ Build1234分佈式構建中的符號存檔未組織爲符號服務器。如果我理解正確,我需要使用緩存關鍵字。
考慮到這些要求,這是否看起來像一個正確格式化srvpath:
cache*\\foo\Build1234;srv*c:\dev\symbols*http://msdl.microsoft.com/download/symbols
編輯:
我剛開始讀高級Windows調試和我誤解緩存的關鍵字是如何工作的。我認爲這是告訴調試器該文件夾只是文件夾而不是符號服務器的一種方式。在邁克爾離開他的評論之後,我重新閱讀了該部分,並且看到邁克爾所描述的那樣確實有效。
現在我很困惑,當你使用一個;或*來分隔路徑/ URL。而當你需要srv *前綴時。在WinDbg中的在線幫助他們舉這個例子:
\\someshare\that\cachestar\ignores;srv*c:\mysymbols*http://msdl.microsoft.com/download/symbols;cache*c:\mysymbols;\\anothershare\that\gets\cached
從\\ someshare的符號不會被緩存,從微軟符號c的緩存:\ MYSYMBOLS和c:\ MYSYMBOLS用作緩存緩存*指令右側的任何其他路徑。
偶爾使用srv *會讓我感到困惑 - 我不明白爲什麼第一個和最後一個路徑沒有用srv *作爲前綴。
編輯2:
這是慢慢開始道理給我。 srv指令用於符號服務器,不用於普通的符號目錄。所以,我相信答案我原來的問題是這樣的:
\\foo\Build1234;cache*c:\dev\symbols;srv*http://msdl.microsoft.com/download/symbols
相關:[如何設置符號在WinDbg中](https://stackoverflow.com/questions/30019889/how-to-set-up-symbols-in-windbg) – 2017-05-30 21:44:36