Share via


SymStore 交易

符號存放區的每個呼叫都會記錄為交易。 交易有兩種類型:新增和刪除。

建立符號存放區時,會在伺服器根目錄下建立名為 「000admin」 的目錄。 000admin 目錄包含每個交易的一個檔案,以及記錄檔server.txt和history.txt。 server.txt檔案包含伺服器上目前所有交易的清單。 history.txt檔案包含所有交易的時間歷程記錄。

每次 SymStore 儲存或移除符號檔時,都會建立新的交易編號。 然後,會在 000admin 中建立名稱為此交易編號的檔案。 此檔案包含此交易期間已新增至符號存放區的所有檔案或指標清單。 如果刪除交易,SymStore 會讀取其交易檔,以判斷應該刪除的檔案和指標。

adddel選項會指定是否要執行新增或刪除交易。 包含具有新增作業的 /p 選項會指定要新增指標;省略 /p 選項會指定要加入實際符號檔。

您也可以在兩個不同的階段中建立符號存放區。 在第一個階段中,您會使用 SymStore 搭配 /x 選項來建立索引檔案。 在第二個階段中,您可以使用 SymStore 搭配 /y 選項,從索引檔中的資訊建立檔案或指標的實際存放區。

這可以是各種原因的實用技術。 例如,只要索引檔案仍然存在,這可讓符號存放區輕鬆重新建立。 或者,包含符號檔的電腦與將建立符號存放區的電腦有緩慢的網路連線。 在此情況下,您可以在與符號檔相同的電腦上建立索引檔案、將索引檔案傳送至第二部電腦,然後在第二部電腦上建立存放區。

如需所有 SymStore 參數的完整清單,請參閱 SymStore Command-Line Options

注意 SymStore 不支援多個使用者的同時交易。 建議一位使用者指定符號存放區的「系統管理員」,並負責所有 新增del 交易。

交易範例

以下是針對 Windows 2000 組建 2000 組建 2195 新增符號指標至 \\MyDir\symsrv 的兩個範例:

symstore add /r /p /f \\BuildServer\BuildShare\2195free\symbols\*.* /s \\MyDir\symsrv /t "Windows 2000" /v "Build 2195 x86 free" /c "Sample add"
symstore add /r /p /f \\BuildServer\BuildShare\2195free\symbols\*.* /s \\MyDir\symsrv /t "Windows 2000" /v "Build 2195 x86 checked" /c "Sample add"

在下列範例中,SymStore 會將 \\largeapp\appserver\bins 中應用程式專案的實際符號檔新增至 \\MyDir\symsrv:

symstore add /r /f \\largeapp\appserver\bins\*.* /s \\MyDir\symsrv /t "Large Application" /v "Build 432" /c "Sample add"

以下是如何使用索引檔案的範例。 首先,SymStore 會根據 \\largeapp\appserver\bins\中的符號檔集合來建立索引檔案。 在此情況下,索引檔案會放在第三部電腦 \\hubserver\hubshare 上。 您可以使用 /g 選項來指定檔案前置詞 「\\largeapp\appserver」 未來可能會變更:

symstore add /r /p /g \\largeapp\appserver /f \\largeapp\appserver\bins\*.* /x \\hubserver\hubshare\myindex.txt

現在假設您將所有符號檔從電腦 \\largeapp\appserver 移動,並將其放在 \\myarchive\appserver 上。 然後,您可以從索引檔案建立符號存放區本身\\hubserver\hubshare\myindex.txt,如下所示:

symstore add /y \\hubserver\hubshare\myindex.txt /g \\myarchive\appserver /s \\MyDir\symsrv /p /t "Large Application" /v "Build 432" /c "Sample Add from Index"

最後,以下是刪除先前交易所新增之檔案的 SymStore 範例。 See "The server.txt and history.txt Files" section below for an explanation of how to determine the transaction ID (in this case, 0000000096).

symstore del /i 0000000096 /s \\MyDir\symsrv

server.txt和history.txt檔案

新增交易時,會將數個專案資訊新增至server.txt,並history.txt以供日後查閱功能使用。 以下是新增交易server.txt和history.txt行的範例:

0000000096,add,ptr,10/09/99,00:08:32,Windows Vista SP 1,x86 fre 1.156c-RTM-2,Added from \\mybuilds\symbols,

這是以逗號分隔的行。 欄位的說明如下:

欄位 描述

0000000096

符號存放區所建立的交易識別碼號碼。

add

交易的類型。 此欄位可以是 adddel

ptr

檔案或指標是否已新增。 此欄位可以是 檔案ptr

10/09/99

交易發生的日期。

00:08:32

交易啟動的時間。

Windows Vista SP 1

產品。

x86 fre

版本 (選擇性) 。

已從 新增

批註 (選擇性)

未使用

(保留供稍後使用。)

以下是交易檔0000000096的一些範例行。 每一行都會記錄目錄和新增至目錄的檔案或指標位置。

canon800.dbg\35d9fd51b000,\\mybuilds\symbols\sp4\dll\canon800.dbg
canonlbp.dbg\35d9fd521c000,\\mybuilds\symbols\sp4\dll\canonlbp.dbg
certadm.dbg\352bf2f48000,\\mybuilds\symbols\sp4\dll\certadm.dbg
certcli.dbg\352bf2f1b000,\\mybuilds\symbols\sp4\dll\certcli.dbg
certcrpt.dbg\352bf04911000,\\mybuilds\symbols\sp4\dll\certcrpt.dbg
certenc.dbg\352bf2f7f000,\\mybuilds\symbols\sp4\dll\certenc.dbg

如果您使用 del transaction 復原原始 新增 交易,則會從server.txt中移除這些行,並將下列這一行新增至 history.txt:

0000000105,del,0000000096

刪除交易的欄位如下所述。

欄位 描述

0000000105

符號存放區所建立的交易識別碼號碼。

del

交易的類型。 此欄位可以是 adddel

0000000096

已刪除的交易。