调试 System.Threading
Debugging System.Threading
是否可以调试 System.Threading 库?
我有一个看起来有点像这样的堆栈跟踪:
我已经按照我能看到的有关如何调试 .NET 库的所有步骤进行操作。
- 取消选中 'Enable Just My Code'
- 勾选'Enable .NET Framework source stepping'
- 勾选'Enable Source Sever Support'
- 检查符号文件 (.pdb) 位置下的 'Microsoft Symbol Servers'
然而,当我尝试调试 System.threadin 调用时,我收到一个文件未找到页面,要求我浏览并查找 .cs 文件。
像这样。
是否可以调试 System.Threading 库?我是否遗漏了任何步骤?
编辑:
我不确定它是否重复。例如,另一个线程上的顶级解决方案要求我转到 referencesource.microsoft.com,它甚至不包含 System.Threading。这是专门针对该图书馆的问题。如果不出意外,对此的有效答案可能是 'It is not possible to debug System.Threadin' 或者有可能但使用其他方法来做到这一点
正常情况:
我们可以尝试升级到最新的 .net 4.8 框架,它适用于某些情况,例如这两个类似的问题 and 。
因为我们应该确保 https://referencesource.microsoft.com/ 包含我们正在调试的确切版本,所以大多数时候最好选择最新版本。
但是对于这个:
因为升级到 .net 4.8 似乎没有解决这个问题(也许我在这个过程中做错了什么?)。我选择了另一个方向(using local source
)但它在我身边有效。
我们在调试.net framework源码的时候,除了源码服务器外,还会尝试去本地目录找源码。所以我们可以在我们的机器上下载 source code
.zip 文件和 configure the Source File settings for solution
.
1.去https://referencesource.microsoft.com/点击右上角的下载按钮
2。将 .NET Framework 的完整源代码下载为 .zip 文件。由于我的项目目标是.net framework 4.8
,所以我下载了.net 4.8 package.
(我们只需要下载对应自己项目的相应包即可,不需要全部下载)
3.解压缩包含源代码的 .zip 文件并将其移动到我决定保留源代码的位置,然后在 VS IDE=> Right-click solution => Properties => Common Properties => Debug Source Files => New Line(Ctrl-Insert) 并输入 Source 文件夹的路径(Source解压文件夹中的文件夹)=>Apply=>OK.
对于我来说,我把解压后的DotNet48RTM
文件夹放在Documents
文件夹中,所以我在Debug Source Files设置中输入的路径是C:\Users\xxx\Documents\DotNet48RTM\Source
然后我可以在 运行 重建后进入 System.Threading 库。
此外:确保您已满足上述所有要求here。您应该在 Debug=>Options=>Symbols
.
中禁用 require source files to exactly match the original version
选项和 Empty the symbol cache
是否可以调试 System.Threading 库?
我有一个看起来有点像这样的堆栈跟踪:
我已经按照我能看到的有关如何调试 .NET 库的所有步骤进行操作。
- 取消选中 'Enable Just My Code'
- 勾选'Enable .NET Framework source stepping'
- 勾选'Enable Source Sever Support'
- 检查符号文件 (.pdb) 位置下的 'Microsoft Symbol Servers'
然而,当我尝试调试 System.threadin 调用时,我收到一个文件未找到页面,要求我浏览并查找 .cs 文件。
像这样。
是否可以调试 System.Threading 库?我是否遗漏了任何步骤?
编辑: 我不确定它是否重复。例如,另一个线程上的顶级解决方案要求我转到 referencesource.microsoft.com,它甚至不包含 System.Threading。这是专门针对该图书馆的问题。如果不出意外,对此的有效答案可能是 'It is not possible to debug System.Threadin' 或者有可能但使用其他方法来做到这一点
正常情况:
我们可以尝试升级到最新的 .net 4.8 框架,它适用于某些情况,例如这两个类似的问题
因为我们应该确保 https://referencesource.microsoft.com/ 包含我们正在调试的确切版本,所以大多数时候最好选择最新版本。
但是对于这个:
因为升级到 .net 4.8 似乎没有解决这个问题(也许我在这个过程中做错了什么?)。我选择了另一个方向(using local source
)但它在我身边有效。
我们在调试.net framework源码的时候,除了源码服务器外,还会尝试去本地目录找源码。所以我们可以在我们的机器上下载 source code
.zip 文件和 configure the Source File settings for solution
.
1.去https://referencesource.microsoft.com/点击右上角的下载按钮
2。将 .NET Framework 的完整源代码下载为 .zip 文件。由于我的项目目标是.net framework 4.8
,所以我下载了.net 4.8 package.
(我们只需要下载对应自己项目的相应包即可,不需要全部下载)
3.解压缩包含源代码的 .zip 文件并将其移动到我决定保留源代码的位置,然后在 VS IDE=> Right-click solution => Properties => Common Properties => Debug Source Files => New Line(Ctrl-Insert) 并输入 Source 文件夹的路径(Source解压文件夹中的文件夹)=>Apply=>OK.
对于我来说,我把解压后的DotNet48RTM
文件夹放在Documents
文件夹中,所以我在Debug Source Files设置中输入的路径是C:\Users\xxx\Documents\DotNet48RTM\Source
然后我可以在 运行 重建后进入 System.Threading 库。
此外:确保您已满足上述所有要求here。您应该在 Debug=>Options=>Symbols
.
require source files to exactly match the original version
选项和 Empty the symbol cache