符號檔案系統
有兩個常見的符號文件系統。 在本檔中,這些稱為目前的系統和舊系統。
目前的符號檔系統
在目前的系統中,一律有兩個檔案:可執行檔和 .pdb 檔案。 .pdb 檔案包含所有符號。 可執行檔包含 .pdb 檔案的指標。
如果 .pdb 符號檔包含私人符號,BinPlace 可以將此資訊移除併產生等量符號檔。 如需詳細資訊,請參閱 公用符號和私人符號 。
舊符號文件系統
在舊系統中,可執行檔和符號檔可以透過兩種不同的方式排列:
可執行檔和 .pdb 檔案。 在此排列方式中,大部分的符號信息都位於 .pdb 檔案中。 其餘的符號資訊會包含在可執行檔中。 可執行檔也包含 .pdb 檔案的指標。
可執行檔、.pdb 檔案和 .dbg 檔案。 .pdb 檔案與在兩個檔案排列中相同:它會保存大部分的符號。 符號信息的其餘部分位於 .dbg 檔案中。 可執行檔中沒有符號資訊。 可執行檔包含 .dbg 檔案的指標,而 .dbg 檔案則包含 .pdb 檔案的指標。
在舊的符號檔系統中,兩個檔案排列和三個檔案排列都包含相同的可執行程式碼和相同的符號。 程式可以執行,而且可以在任一排列中進行偵錯。 不過,由於可執行檔較小,因此三檔案排列會加快執行速度。
如果您的二進位檔是以兩個檔案排列中的舊符號文件系統所建置,BinPlace 可以將它轉換成三個檔案排列。 換句話說,BinPlace 可以將可執行檔「分割」成無符號可執行檔,以及包含可執行檔中符號的新 .dbg 檔案。
BinPlace 也可以從舊符號文件系統中的檔案中去除私人符號資訊,但前提是它也會分割檔案(換句話說,只有在將檔案從兩個檔案排列變更為三個檔案排列時)。 BinPlace 無法從舊符號文件系統中的檔案移除私人符號,並將它們保留在兩個檔案排列中。 如果檔案已經在三個檔案排列中,BinPlace 將不會執行任何等量;事實上,如果可執行檔在 BinPlace 命令行上命名,它甚至不會移動符號檔。 如需詳細資訊,請參閱 公用符號和私人符號 。