调试:单步调试 System.Windows.Forms 中的代码

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

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

http://img3.mukewang.com/610e3c7100019e6915910054.jpg

您必须为您的应用程序的目标版本下载准确的 .NET Framework 源代码(来自http://referencesource.microsoft.com/)。有关更多详细信息,请参阅.NET Framework 源代码调试

http://img3.mukewang.com/610e3c7f0001e88d10210668.jpg

http://img.mukewang.com/610e3c890001dfc110100526.jpg

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


慕的地10843
浏览 267回答 1
1回答

慕码人2483693

我有完全相同的问题(使用 .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 文件不包含有关源文件名称的信息。我认为这就是为什么在调试期间没有出现询问源文件位置的窗口的原因。
打开App,查看更多内容
随时随地看视频慕课网APP