调试:在System.Windows.Forms

时间:2018-06-12 07:39:43

标签: c# .net winforms

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

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

stackframes within .NET framework and WinForms

2 个答案:

答案 0 :(得分:1)

您必须为应用程序的目标版本下载确切的.NET Framework源代码(从http://referencesource.microsoft.com/)。有关更多详细信息,请参见.NET Framework source code debugging

enter image description here enter image description here enter image description here

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

答案 1 :(得分:0)

我有完全相同的问题(使用 .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 文件不包含有关源文件名称的信息。我想这就是为什么在调试过程中没有出现询问源文件位置的窗口的原因。