2009-02-27 51 views
17

與商業應用程序一起重新分配pdb文件是明智之舉嗎?pdb文件包含多少信息? (C#/ .NET)

偶爾,我使用堆棧跟蹤從已部署的應用程序中獲取更詳細的錯誤報告日誌;這個功能可以在不依賴這些文件的情況下實現嗎?

此外,這些文件包含多少原始源代碼提示?使用它反向工程我的應用程序會更容易嗎?

+0

如果您指定了您正在使用的環境,這將有所幫助。許多開發工具輸出PDB文件。 – 2009-02-27 20:26:59

回答

11

它基本上增加了信息:

  • 所有非公共類型,接口,結構,類
  • 函數中的局部變量
  • 在源代碼相關的代碼和相應的行號
  • 源文件名。

所有組合都使得反向工程對於本機代碼非常簡單。

幸運的是,您可以創建一個精簡版的PDB文件,其中只包含帶有/PDBSTRIPPED參數的公共信息。

哦,你編輯添加C#/。NET,所以我不知道「PDBSTRIPPED」是否適用。然而,即使沒有任何符號信息,.NET應用程序也很容易reverse engineer。我不介意將它們包含在.NET項目中。

3

託管.pdb文件包含下列信息:

  • 到這些文件中線上的所有局部變量
  • 所有的源代碼文件,並從IL指令映射的名稱的名稱。

其他所有內容都包含在二進制文件本身中,包括所有類型,成員和函數參數的名稱。

來源:PDB files: what every developer must know