2008-09-20 61 views
1

我想調試在Visual Studio中的應用程序,但我只有1類的源代碼。我只需要通過該文件中的單個函數,但我不明白我需要做什麼。我想的步驟通常是這樣的:你能用一個文件的源代碼調試一個.NET應用嗎?

  1. 打開在VS文件
  2. 加載在「符號」(.PDB文件)
  3. 附加到正在運行的進程

我知道如何做#1和#3,但是我沒有如何做#2沒有.PDB文件。是否有可能生成.PDB文件以使其工作?謝謝!

回答

7

您需要* .pdb文件(您的文章中的第2步)這些文件包含源代碼和編譯程序集之間的映射。所以你的步驟是正確的。如果您的源文件與原始文件存在差異,請在BP的屬性對話框中設置複選標記「允許源代碼與原始版本不同」。

Breakpoints and Tracepoints in Visual Studio

如果你沒有PDB文件,你可以嘗試使用Reflector.FileDisassemblerFileGenerator For Reflector反編譯你的項目。他們可以重新編譯這些文件以獲得PDB

另請參見Deblector - 調試反射器的插件。

1

您需要屬於您嘗試調試的應用程序的符號文件(.PDB)文件。

MSDN: PDB Files

Visual Studio調試器使用的路徑,PDB在EXE或DLL文件找到project.pdb文件。如果調試器在該位置找不到PDB文件,或者路徑無效(例如,如果項目移動到另一臺計算機),則調試器將搜索包含EXE的路徑,後跟在選項對話框中指定的符號路徑。此路徑通常是符號節點中的調試文件夾。調試器不會加載與正在調試的二進制文件不匹配的PDB。

0

符號文件是.pdb文件。如果你把它放在可執行文件的旁邊,那會加載符號,並指向源文件。

0

您的情況'符號'是指您想要調試的程序集的pdb文件。調試器不要求你擁有所有的源代碼,只要你有匹配的pdb。 pdb是在構建程序集的過程中生成的,不幸的是你不能在事實之後創建一個。如果您沒有pdb,則需要在較低級別進行調試,然後再進行源代碼調試。

如果您在機器上構建了裝配體,那麼附着時會找到這些符號。在這種情況下,只需在源代碼中設置一個斷點並執行所需的任何操作即可使代碼運行,然後您將觸發斷點。

如果你沒有建立它,你需要找到程序集的pdb。在Debug/Windows/Modules下找到的模塊窗口通常可以通過告訴您加載過程中的程序集以及版本信息和時間戳來提供幫助。

如果可能有多個版本的程序集(例如保留許多夜間版本,或持續集成版本的最後20個版本),則需要這些信息。

希望有幫助。

相關問題