从.exe运行调试器时,如何查看源代码?

时间:2017-08-23 19:57:48

标签: visual-studio debugging .net-4.5

我正在尝试查看已安装应用程序的源代码,以便我可以对其进行调试。我的调试器是Visual Studio,使用.Net 4.5。要打开文件,我选择了#34;从源代码打开"在Visual Studio中,然后我选择了applicationName.exe文件。 VS似乎已打开文件,我现在可以从Visual Studio运行该文件。

但是,我无法查看源代码,添加中断或单步执行应用程序。当我使用IntelliTrace"打破所有"选项,应用程序似乎被暂停,但随后我被告知"代码未运行:当前线程当前没有运行代码或无法获得调用堆栈。"然后,当我点击“#34;继续"”时,应用程序将从中断处继续恢复。

如何解决这个问题,以便实际查看源代码并插入断点?

2 个答案:

答案 0 :(得分:3)

  

如何解决这个问题,以便实际查看源代码并插入断点?

您需要为正在调试的exe提供相应的.pdb文件。 .pdb文件用于“将您在源文件中为类,方法和其他代码创建的标识符映射到项目的已编译可执行文件中使用的标识符。 .pdb文件还将源代码中的语句映射到可执行文件中的执行指令。“调试器需要这种类型的文件来定位源文件中的代码行。

详细说明请参考: https://msdn.microsoft.com/en-us/library/ms241613.aspx

以上链接还介绍了如何在调试时加载.pdb文件和源文件。

答案 1 :(得分:0)

一般来说,Leo-MSFT写的是真的,使用.NET应用程序,它在源代码和PDB方面稍微容易一些,因为它们可以从.NET程序集生成。它不是确切的源代码,但接近它的东西是可以理解的。

您可以使用dnSpy之类的工具打开此类程序集并在其中进行调试,并显示源代码。

如果您需要坚持使用Visual Studio,我建议使用JetBrains dotPeek。它可以充当符号服务器(因此在需要时提供PDB)。

您将它添加到VS(符号服务器选项),然后当VS要求PDB时,它可以为您生成一个,您可以调试。

相关问题