繁体   English   中英

在没有 Visual Studio 的情况下进行调试,但可以使用源文件和 pdb 文件

[英]Debugging without Visual Studio, but source and pdb files available

情况如下:

我有一个带有 Visual Studio 2019 的 Windows 10 机器,并在那里在调试模式下创建了一个 c# .NET 项目,它可以工作。

该程序碰巧在不同的 Windows 7 机器上抛出一个未处理的异常,并带有无意义/模棱两可的消息。 在那台机器上,恰好安装了 Visual Studio 2008。 我被问到是否使用它进行调试,我很乐意这样做,以获取导致异常的代码。 将所有源文件复制到 Windows 7 机器后,我发现无法使用 Visual Studio 2008 加载项目,因为 VS 2008 拒绝加载使用较新版本的 Visual Studio 创建的项目文件。

然而,我确实收到了在崩溃时使用 Visual Studio 2008 调试器的提议,但如果我使用它,我得到的只是相当无用的汇编代码和毫无意义的崩溃位置地址,因为调试器未连接到源代码,并且 Visual Studio 不能,AFAIK,能够将该地址链接到源代码。 所以情况是,我在目标机器上拥有所有可用的源文件和符号文件,但调试器没有加载它们,我不知道我是否可以以某种方式将它们显示给 Visual Studio 外部的调试器,并启动项目从 Visual Studio 2008 开始是不可能的,因为它不会加载项目源文件。

有什么方法可以让我进行有意义的调试,我的意思是所有文件都到位后,即使 Visual Studio 版本不匹配,也应该可以使用源显示进行调试。

框架版本是 4.x(最新的,认为是 4.7)。 该消息说 W7 机器上的服务尚未启动或丢失,遗憾的是没有提示 1000 种可能的服务中的哪一种。 如果我加载 VS 2008 调试器,我会得到相当无用的提示,即崩溃发生在地址 $..... (非常非常长的十六进制地址)。 如果我知道程序的哪个部分导致了异常,我可以轻松找出。 问题不是解决异常的目标,而只是在所描述的情况下如何使用调试器找出异常的来源。

您可以使用dnSpy和我的Runtime Flow等工具进行轻量级调试,以找出程序的哪个部分导致了异常。

有什么方法可以让我进行有意义的调试,我的意思是所有文件都到位后,即使 Visual Studio 版本不匹配,也应该可以使用源显示进行调试。

我认为您可以像 Pavel 所说的那样使用Remote Debugger 它将使用本地 VS2019 来调试没有 VS2008 的远程计算机上的源文件。

首先,您应该安装远程工具或者只是将远程调试器文件夹复制到远程计算机中,然后按照本文所述进行配置,在远程计算机上以管理员身份运行它。

然后,使用IIS在远程计算机上运行您的 asp 网络源文件(您有整个项目源文件和 output 文件)

在本地计算机上,打开 VS2019,使用Attach to Process从远程计算机捕获您的项目进程。

更多信息你可以看到这个关于它的官方文档

此外,您还可以使用Windows -----WinDbg 的调试工具

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM