可以调试System.Threading库吗?
我有一个堆栈跟踪,看起来有点像这样:

我遵循了关于如何调试.NET库的所有步骤。
然而,当我尝试调试一个System.threadin调用时,我得到了一个未找到的文件页面,该页面要求我浏览并找到.cs文件。
就像这样。

可以调试System.Threading库吗?我有错过任何步骤吗?
编辑:我不确定它是复制的。例如,另一个线程上的顶级解决方案要求我转到referencesource.microsoft.com,它甚至不包含System.Threading。这是一个专门针对那个图书馆的问题。如果没有其他方法,那么有效的答案可能是“调试System.Threadin是不可能的”,或者可以使用其他方法进行调试。
发布于 2019-07-24 02:55:58
正常场景:
我们可以尝试升级到最新的.net 4.8框架,它适用于某些情况,比如如何调试System.Web.dll?和无法进入PresentationFramework这两个类似的问题。
因为我们应该确保https://referencesource.microsoft.com/包含我们正在调试的确切版本,大多数情况下最好选择最新版本。
,但对于这个:
由于升级到.net 4.8似乎不能解决这个问题(可能是我在这个过程中做错了什么?),.I选择了另一个方向(using local source),但它在我这边有效。
在调试.net框架源代码时,除了源代码服务器之外,它还将尝试在本地目录中找到源代码。所以我们可以在我们的机器和source code中下载.zip文件和configure the Source File settings for solution。
1.Go https://referencesource.microsoft.com/并单击右上角的下载按钮。
2.Download将.NET框架的整个源代码作为.zip文件。因为我的项目以.net framework 4.8为目标,所以我下载了.net 4.8软件包。
(我们只需要下载与我们的项目相对应的适当软件包,不需要全部下载)
3.Unzip包含源代码的.zip文件,并将其移动到我决定保留源代码的位置,然后在VS IDE => >中右击解决方案、=>属性、=>公共属性、=>调试源文件和新行(Ctrl-Insert),并输入源文件夹的路径(解压缩文件夹中的 source 文件夹)=>Apply=>OK。
对我来说,我把解压缩的DotNet48RTM文件夹放在Documents文件夹中,所以我在Debug源文件设置中输入的路径是C:\Users\xxx\Documents\DotNet48RTM\Source
然后,在运行重新构建之后,我可以进入System.Threading库。
此外,:确保您已经满足了提到的这里的所有需求。您应该禁用require source files to exactly match the original version选项和Debug=>Options=>Symbols中的Empty the symbol cache。
https://stackoverflow.com/questions/57167932
复制相似问题