【问题标题】:Debugging: Step through code in System.Windows.Forms调试:单步调试 System.Windows.Forms 中的代码
【发布时间】:2021-04-02 03:50:10
【问题描述】:

是否可以通过 System.Windows.Forms 中的代码进行调试?

使用“启用 .NET 框架步进”设置和匹配符号(例如从 Microsoft 符号服务器接收)调试其他 .NET 框架代码对我来说就像是一种魅力,但对于 System.Windows.Forms 中的堆栈帧,没有提供代码(见屏幕截图),尽管 WinForms 代码在 .NET 源代码中可用,而不是封闭源代码。

【问题讨论】:

  • 禁用“仅我的代码”?转到“调试”菜单上的选项和设置。在 Debugging / General 节点中,选择或清除 Enable Just My Code
  • 'Just my code' 一直被禁用。正如我所说,通过 .NET 框架的其余部分进行调试是可行的。
  • 运气好吗?我有完全相同的问题。我已经设置了所有设置,下载了源代码(针对目标版本和我安装的内容),我可以进入其他代码,但是当我尝试进入表单代码时,它只是简单地跳过而没有任何提示。这真的很令人沮丧,因为我开始这一切只是为了单步执行一些表单代码,没有别的,到目前为止没有任何效果。
  • 很遗憾没有。

标签: c# .net winforms


【解决方案1】:

您必须为您的应用程序的目标版本下载确切的 .NET Framework 源代码(来自http://referencesource.microsoft.com/)。详情请见.NET Framework source code debugging

然后浏览到下载的源代码(例如:“D:\Downloads\Source\ndp\fx\src\winforms\Managed\System\WinForms\Application.cs”)

【讨论】:

  • 检查了多次。这不是重点。我可以调试框架中的每一段代码,除了 WinForms 的东西。甚至不可能在 System.Windows.Forms 中为堆栈帧指定源文件。
  • 启用 .NET Framework 源代码步进,如上所述。从上面提到的链接下载源代码。当您按“F11”从 System.Windows.Forms.dll 中单步执行代码时,将出现“找不到源”窗口,单击“浏览并查找 .cs...”(例如:“浏览并找到Application.cs...”)然后浏览到下载的源代码(例如:“D:\Downloads\Source\ndp\fx\src\winforms\Managed\System\WinForms\Application.cs”)跨度>
  • 没有。就是不行。当然,启用源框架步进。我在开始的帖子中提到了这一点。我可以调试框架的其余部分,所以设置是正确的。它从不要求 WinForms 的来源。在 Microsoft Social 上找到了一个帖子,其他人也有类似的问题。他提到,在某次Win10更新后,他无法再通过WinForms进行调试。此外,他的 WinForms pdb 比以前小,这可能是问题的原因(pdb 中缺少源信息)
  • 我有 Windows 10,最新更新,上述方法适用于 Windows 窗体应用程序。希望你能找到方法
  • Radoaica,您能否尝试通过 System.Windows.Forms 命名空间中的方法进行调试? Application.cs 在 System.Windows 中,通过此命名空间中的类进行调试也适用于我。也许您可以尝试调试到 Form.Show() 或类似的东西?
【解决方案2】:

我有完全相同的问题(使用 .Net 4.6.1 和 4.7.2)我可以调试例如System.dll 模块,但我无法调试 System.Windows.Forms。所有设置都正确,pdb 文件已下载到磁盘,在模块窗口中我看到符号已加载。但是调试不起作用。我相信 System.Windows.Forms.pdb 文件不包含所有必要的信息。 我通过 cvdump.exe 实用程序检查了 System.Windows.Forms.pdb 和 System.pdb 文件。 System.Windows.Forms.pdb 文件不包含有关源文件名称的信息。我认为这就是为什么在调试期间没有出现询问源文件位置的窗口的原因。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多