首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DebugDiag未在.NET 4下显示.NET堆栈信息

DebugDiag未在.NET 4下显示.NET堆栈信息
EN

Stack Overflow用户
提问于 2013-01-29 18:13:14
回答 3查看 1.7K关注 0票数 7

我觉得这可能有一个简单的答案,但我一直找不到。

问题的场景是一个C# .NET控制台应用程序。

我通常使用DebugDiag 1.2来检查来自挂起的.dmp文件--通常是线程锁定问题。它们是使用DebugDiag的“创建完整用户转储”选项创建的。

我最近开始编写针对.NET 4的应用程序,为开始使用.NET 4的一些功能做准备。但是,我注意到当使用.dmp分析这些DebugDiag文件时,所有的.NET堆栈信息都丢失了。

如果我将CLR目标更改为.NET 3.5,并从新的可执行文件中捕获.dmp,那么.NET调用堆栈信息就在那里了。

当我查看DebugDiag的输出时,我看到一个注释:

CLR信息 CLR版本= 4.0.30319.17929 CLR调试器扩展名= C:\Program \DebugDiag\Exts\psscor4.dll .NET线程摘要 请求ThreadStore失败

我认为“未能请求ThreadStore”是问题的关键,因为.NET 3.5 .DMP文件(它使用psscor2.dll)报告了“线程摘要”标题下的所有线程信息。

是.dmp丢失了信息,还是DebugDiag由于某种原因无法检索它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-17 16:29:16

最终,这个问题自己解决了。我就此事向微软提出了一个问题,他们说DebugDiag 1.1不支持.NET 4+。不久之前,他们发布了v1.2,它又像一种魅力:

http://www.microsoft.com/en-us/download/details.aspx?id=26798

票数 3
EN

Stack Overflow用户

发布于 2013-06-13 21:48:29

假设您正在进行一个完整的转储,这可能与它如何共同定位sos有关。在3.5下,它将使用mscorlib共同定位,而在clr 4下,它将使用CLR共同定位。这将取决于谁写的调试器,是CLR 4宽容。

票数 0
EN

Stack Overflow用户

发布于 2013-07-17 05:09:36

我也面临同样的问题,对我来说,从DebugDiag的子目录"exts“中删除psscor4.dll是有帮助的。

在DebugDiag-报告中,我的CLR-运行时列表现在显示为:

代码语言:javascript
运行
复制
CLR Information

CLR version = 4.0.30319.18052

CLR Debugger Extension = C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll

PS:请注意使用正确版本的DebugDiag (32位对64位).

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14589462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档