问题标签 [debugdiag]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6899 浏览

.net - 使用 DebugDiag 调试转储文件时出错

这是我第一次使用 .dmp 文件进行调试或做任何事情。我正在使用调试诊断。当我运行我的分析时,我得到了这个错误 -

它说要解决这个问题,我必须这样做:

我做到了,现在我收到以下错误:

转储文件:w3wp.DMP

类型:Microsoft.Diagnostics.Runtime.ClrDiagnosticsException

消息:无法加载 dac:D:\Dumps\mscordacwks_Amd64_Amd64_10.0.30319.01.dll

我曾尝试浏览几个链接,其中一个是this。什么都得不到。如何解决此问题并查看转储文件的整个分析?

0 投票
1 回答
1840 浏览

visual-studio-2010 - 调试诊断工具、WinDBG 和 Visual Studio 无法打开我的转储

我的设置如下:

  1. 在 64 位 Windows 2003 服务器上运行的 32 位 .net 4.0 网站
  2. 我有 Debug Diagnostic 1.2 设置来监控崩溃
  3. 我还没有自动转储,但正在尝试分析手动转储。
  4. 我有一台安装了 Visual Studio 2010 的 32 位 Windows 7 机器,我试图用它来分析这些转储文件。

我尝试了多种方法来打开它生成的转储文件,但都失败了。

以下是我尝试过的:

1. DebugDiag Win 2003

尝试直接在托管网站的 win 2003 服务器上通过调试诊断使用分析选项卡。我收到以下错误

2. 调试诊断 Win 7

尝试分析 32 位 windows 7 机器上的转储,我收到以下错误:

3. Win 7 x86 上的 WinDbg

尝试在 32 位 widows 7 机器上通过 WinDbg 工具打开转储:

尝试在 WinDBG 上运行以下命令注册 mscordwks 并切换到 32 位版本,但仍然不行:

![在此处输入图像描述][2]

4. 视觉工作室 2010

尝试使用 Visual Studio 2010 调试此转储文件,但也无法显示无法显示托管代码或其他内容。


我已经在这上面呆了 10 天,感到非常失望和无助。

任何人都可以阐明这里有什么问题吗?

提前谢谢了。

0 投票
1 回答
1095 浏览

iis - How to interpret this crash dump

We've been encountering an issue with a particular website hosted in iis for which I've not managed to get much information from the event log. I'm a bit out of my league with these low level 'raw' diagnostic tools and I'm not if I'm barking up the wrong tree (in which case please tell me - e.g IIS is just broken) or whether I'm following the correct paths to try and locate the issue.

A process serving application pool 'MyWebsite' suffered a fatal communication error with the Windows Process Activation Service. The process id was '4372'. The data field contains the error number.

Running with DebugView open I reliably see these lines when I encounter an issue

[5904] 4692 iisutil!ReadMultiStringParameterValueFromAnyService [helpfunc.cxx @ 490]:Inetinfo: Failed reading registry value [5904]
Error(80070002): The system cannot find the file specified.

I therefore tried installing DebugDiag and looking for any exceptions, which create a number of full dumps for me. Once I've analyzed them I've got a report out the other end shown below, but I'm not sure how to further analyse this. It tells me the type and message were NOT_FOUND and suggests contacting Microsoft. While this is 1 route - I'd like to know if there are further things that can be done before considering that approach:

enter image description here

0 投票
1 回答
639 浏览

.net - DebugDiag 可以像 Visual Studio 2013 那样生成“包含大小”的报告吗

Visual Studio 2013 可以显示包含大小的列(包括子对象的大小) - http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/net-memory-analysis-enhancements-in -visual-studio-2013.aspx

DebugDiag 的内存分析报告目前只显示对象大小,不包括子对象。有没有办法让 DebugDiag 在其报告中包含子对象的大小?

你的建议是为 .NET 4.0 生成此类报告的好方法,因为 Visual Studio 仅支持分析 .NET 4.5 故障转储

包含大小

0 投票
1 回答
665 浏览

c++ - DebugDiag 调用堆栈不显示调用堆栈中函数的行号

我正在尝试隔离 Windows 上本机代码中的内存泄漏。

我运行了测试用例的多次迭代并将 DebugDiag 附加到进程以收集有关可疑泄漏的信息(通过 PerfMon 中的多次运行确认内存泄漏)。

DebugDiag 指出了可疑的调用堆栈,例如

我已经正确配置了符号,现在我想知道如何从调用堆栈中提取更多信息。

  1. UMDH 日志在其差异日志中也有行号(带有文件名)。但是在 DebugDiag 报告中,我没有找到这些函数的任何行号。如果函数真的很长,那么仅通过查看调用堆栈而没有行号就很难描述上下文。有什么方法可以从 DebugDiag 日志中提取函数(文件)的行号?

  2. 我想知道的另一件事是module!function调用堆栈中每个条目的十六进制偏移量的重要性。

  3. 调用堆栈中的分配大小是多少?是每次执行此调用堆栈时尚未释放(因此泄漏)的分配内存吗?

  4. 有关 DebugDiag 功能的综合文档的任何指针?

0 投票
1 回答
896 浏览

.net - DebugDiag 如何在没有匹配调试 dll 的情况下分析转储文件

尝试分析转储文件时出现以下错误。

我正在使用正确版本的 WinDbg。我也知道我机器上的 sos 版本与捕获转储文件的机器上的版本不同。所以我正在获取正确的版本,看看是否能解决问题。但是我的问题是,当我通过 DebugDiag Analyzer 打开这个转储文件时,它可以读取转储文件并为我提供正确的结果。我只是好奇,当我的机器上没有匹配版本的 sos 和 mscordacwks 时,谁能分析这个转储文件?

0 投票
1 回答
1719 浏览

debugdiag - DebugDiag2.0在分析asp.net app的挂起问题时失败

我正在使用 DebugDiag2.0 来分析 asp.net 应用程序的挂起问题。但我得到一个错误:

谁能帮忙知道发生了什么?

我安装 DebugDiag1.2 来调试转储文件。我收到错误:vbscript 运行时错误。代码为 0x800a000d,类型不匹配 'CInt' 第 14896 行,CrashHangAnalysis.asp 的第 16 列

0 投票
1 回答
1457 浏览

.net - 在托管的 .NET 应用程序中定位本机内存泄漏,DebugDiag 缺少堆栈跟踪

DebugDiag 中的 LeakTrack 没有捕获堆栈跟踪,所以不知道从哪里开始。

我有一个内存泄漏的 .NET 应用程序(作为 Windows 服务运行的 NServiceBus 进程)。在 5-6 天的过程中增长到大约 10GB。

!address –summary在 WinDbg 中使用了 procdump 和基本分析。我看到堆提交大小为 8.6GB。

接下来,我在托管内存的转储上运行 DebugDiag。托管内存中根本没有危险信号,因此我尝试查看本机分配。

所以我DebugDiag(2.1.0.7),并选择

监控泄漏时立即记录调用堆栈(又名“FastTrack”)注意:不建议监控超过 15 分钟)

然后我运行了 30 分钟(与警告相反)。运行分析时,我收到一条消息,它无法获取调用堆栈,因为我没有运行超过 15 分钟(我做了)或者我需要设置“立即开始记录调用堆栈”(我做了)。

所以,我决定再试一次。这次我设置为运行2小时,并没有设置为“立即开始录制”。相同的消息。

在此处输入图像描述

在此处输入图像描述

这是 9GB procdump 的虚拟内存摘要(没有运行泄漏检测)

在此处输入图像描述

那么我需要做什么才能从 DebugDiag 获取调用堆栈?我的罪魁祸首似乎是在提交的内存中(我不确定我是否真的理解在这种情况下保留与提交)。但是不知道如何确定罪魁祸首。

也不确定为什么 DebugDiag 认为有 8TB 内存(这是在虚拟机上运行,​​不确定是否相关)。

0 投票
1 回答
2001 浏览

azure - 是否可以从 azure web 角色实例下载转储文件

我正在尝试确定导致 azure web 角色 CPU 使用率高的原因。因此,我 RDPed 到我的 azure Web 角色实例,并在长时间的高 CPU 期间创建了内存转储,如下所示

在此处输入图像描述

有没有办法将内存转储文件下载到我的主机?或者任何人都可以提出一种更好的方法来诊断 Azure Web 角色的高 CPU 使用率。

0 投票
1 回答
955 浏览

c# - 根据 DebugDial 保留大量内存(内存泄漏?)

我们在生产中遇到内存问题。

在 2008 Windows Server 上有很多 web api 服务。我看到它们中的大多数都有相同的问题(?),这与保留内存一样大。以下是我使用 DebugDiag 获得的其他一项服务的信息。该服务使用 Linq2Sql,另一个 WebApi 服务,FileSystem 仅写入 LogFile,并发送电子邮件。

.NET GC 堆信息

GC 堆大小 84,77 MB
总提交大小 153 MB

总保留大小 17254 MB

虚拟内存摘要

最大空闲 VM 块大小 7,97 TBytes

空闲内存碎片 0,11%

可用内存 7,98 TBytes(占总内存的 99,79%)

保留内存 17,03 GB(占总内存的 0,21%)

承诺内存 384,59 MB(总内存的 0%)

总内存 8 TB

0x00000005`3f380000 处的最大空闲块

虚拟内存详细信息

虚拟分配 17,19 GB

加载的模块 179,97 MB

线程 17,27 MB

系统 4 KB

页堆 0 字节

本机堆 28,76 MB

虚拟分配摘要

保留内存 17 GB

承诺内存 185,82 MB

映射内存 15,5 MB

保留块数 94 个块

提交的块数 129 个块

映射块数 30 块

资源监视器中,我有以下信息:

已提交:257 MB

工作 394 MB

私人 198 MB

我应该忽略这些关于保留内存的信息还是它告诉我一些非常重要的事情?

我会很感激任何提示。