问题标签 [umdh]
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.
visual-studio-2005 - 是什么导致 UMDH 无法提供堆栈跟踪
我以前用过 UMDH 十几次,从来没有任何问题。
突然间,我的转储文件中的堆栈跟踪中没有函数名称 - 只是一系列地址。
我已经启用了 ust:
gflags exe_name +ust
我启动 exe_name,然后我做
umdh -p:pid one.txt umdh -p:pid two.txt
我查看了 one.txt 和 two.txt ,但没有任何迹象表明它们来自哪里。当我做差异时
umdh one.txt two.txt > diff.txt
结果没有用。
帮助,我喜欢这个工具。
memory-leaks - umdh.exe -g 选项
我正在使用 umdh.exe 来分析可能的内存泄漏。我对 umdh.exe 的“-g”选项有疑问。我在网上搜索,可用的文档说“记录进程未引用的堆块(“垃圾收集”)。
这是否意味着 umdh.exe -g 已经列出了已泄漏的内存(因为在该过程中没有对它的引用)?
请说清楚。
在此先感谢,基兰
windows - 了解 UMDH 警告
我是使用 UMDH 的新手,我在理解如何处理它输出的一些错误时遇到了一些麻烦。我遵循典型用法(来自 MS 站点):
在另一个终端窗口中:
然后回到原来的终端窗口:
但我从 UMDH 收到以下警告
当我第二次调用 UMDH 时,我得到了同样的错误,当我使用 UMDH 来区分两个快照时,我没有得到任何有用的输出(没有堆栈或回溯)。我在另一台计算机上使用过 UMDH,但没有遇到同样的问题(另一台计算机不再可供我使用)。
UMDH 的安装来自 32 位版本的“Windows 调试工具”集合,我运行的是 32 位版本的 WinXP Professional,我的软件是使用 Visual Studio 2008 的 C++ 版本。
我已经对这些警告进行了搜索,但没有发现任何有用的信息。任何帮助将非常感激。
c++ - 堆大小(由 umdh 报告)和(私有)工作集(由任务管理器报告)之间的差异是什么原因造成的?
在 Windows 7 上运行的 C++ 本机代码。VS2008。
我的应用程序的特定状态更改将工作集(私有工作集)从 16Mb(6.5Mb) 增加到 38Mb(22Mb)。由于这似乎过度,我使用 umdh 检查了堆更改。我发现前后堆之间的差异增加了~9Mb。
是什么导致了工作集中的额外内存?
我怀疑它可能是 dll 加载,但我怎样才能确认这一点并将其分解?
silverlight-4.0 - Internet Explorer 9 Silverlight 4 内存泄漏
我们正在将视频从实现 IHttpAsyncHandler 的 ashx 流式传输到 Silverlight 客户端。
在客户端,异步处理程序正在 MediaStreamSource 的实现中使用。
它在最新的 Firefox、chrome 和 Internet Explorer 8 中运行良好。
但是在 Internet Explorer 9 中,我们看到了内存泄漏。我一直在使用 umdh 来调试内存,并找到了一个调用堆栈,它在内存转储之间使用了 127mb。所以我想我已经把它缩小到这个调用堆栈。
但现在我不知道现在继续我的调试。这是 umdh 信息:
首先是第一次和第二次的比较
第二次运行调用栈
c++ - 为什么 UMDH 找不到我的符号?我可以在没有它们的情况下解释堆栈跟踪吗?
我正在尝试使用 UMDH 调试内存泄漏。但是,它从未成功加载符号。我很确定我的设置正确 -
但 UMDH 拒绝加载 ObjectCommunicator.exe 的符号:
ObjectCommunicator.exe 是使用这些选项构建的(使用 vc 6.0。是的 - 它很旧,但升级不是一个选项):
并与这些选项相关联(减去一些 .libs):
为什么 UMDH 无法加载我的符号?有什么办法可以调试吗?如果没有,有没有办法像这样解释 UMDH 堆栈跟踪:
特别是“ObjectCommunicator!???+0 : 43C3E4”是什么意思?例如,我可以对 CDB 做些什么,将其转化为有意义的参考吗?
windows - UMDH & perfmon 私有字节
我正在尝试使用 UMDH 来查找分配了大块内存的位置,但我得到的结果似乎完全荒谬。
我启动程序,等待它达到平衡,然后用 umdh 抓取快照。然后我执行导致它吸收内存的活动,等待它再次达到平衡,然后获取另一个快照。然后我运行一个差异:
我在 perfmon 中目睹了 500M 的额外私有字节(其他内存计数器也相应增长)。UMDH diff 显示了“减少”一些巨大的数字。说什么???谁能解释为什么会这样?
然后我注释掉了在最大增长堆栈中报告的函数中的所有活动。我再次执行上述重现,观察到相同的 500M 增长模式,但 UMDH 报告内存使用量略有增加!!!非常小是那里的有效词。
第一部分真的让我大吃一惊。什么会导致 UMDH 显示堆使用量减少但 perfmon 显示同一进程分配的内存使用量增加相当大?
我考虑了线程堆栈,但线程堆栈计数实际上下降了。还有什么可能进入“私有字节”?
windows-8 - Microsoft 是否已弃用 GFlags 和 UMDH?
在 Windows Vista 中,我发现 UMDH 非常有用,但我在 Windows 7/8 中找不到它,微软是否已弃用 GFlags 和 UMDH?如果是这样,我可以通过 Windows 7/8 批准的工具中的调用堆栈获取堆上分配的日志吗?
visual-studio-2010 - 为什么 UMDH 会报告“无法枚举进程模块”?
在 Windows 7 上的进程上运行 UMDH 时,我只收到“无法枚举进程模块”的响应。进程最初执行时转储工作正常,但当内存使用量增加时会失败。确切的故障点尚不清楚,错误也没有给出任何提示。
c++ - umdh:释放在哪里,什么是负分配?
我有两个关于 umdh 的基本问题:
如果它所做的只是报告分配而不是解除分配,它如何帮助我找到泄漏?在差异结果中,我得到了很多新的分配,但是没有报告哪些被释放,哪些没有被释放(从而导致泄漏)。
差异报告按分配大小递减排序。在报告的底部有一些分配是负数,分配的数量是0。这是什么意思?