在尝试使用{,,ucrtbased.dll}_crtBreakAlloc方法诊断内存泄漏时,我发现内存泄漏取决于多线程环境中的时间。 由于多线程,它不再可预测,有问题的泄漏将获得哪个分配号。 在 Visual Studio 中使用_crtBreakAlloc ,我总共报告了不到 20 个内存泄漏。 ...
在尝试使用{,,ucrtbased.dll}_crtBreakAlloc方法诊断内存泄漏时,我发现内存泄漏取决于多线程环境中的时间。 由于多线程,它不再可预测,有问题的泄漏将获得哪个分配号。 在 Visual Studio 中使用_crtBreakAlloc ,我总共报告了不到 20 个内存泄漏。 ...
我正在使用最新的Windows调试工具包中的UMDH 6.1.7659。 我想尝试生成一个可以在WINDBG中查看的dmp文件,以调查非托管64位C ++ EXE中的内存泄漏: 当我尝试在WinDbg(版本1607)中打开DMP文件时,看到以下内容: 在同一DMP文件上的DUM ...
我正在使用UMDH(x64)测试内存泄漏。 我的代码既没有经过FPO优化,也没有使用自定义的分配器。 它仅使用“新”运算符。 在Gflags(x64)中为要测试的图像启用了“创建用户模式堆栈跟踪数据库”。 在非泄漏情况和泄漏情况下,我都使用UMDH跟踪了我的应用程序,并获得了两种 ...
我有一个服务随着时间的推移间歇性地开始吞噬服务器内存,需要重新启动才能释放它。 我用 gflags 关闭 +ust,重新启动服务,并开始拍摄预定的 UMDH 快照。 当问题再次发生时,资源管理器在工作集和专用字节下报告了多个 GB,但 UMDH 快照仅占进程堆中的几个 MB 分配。 在 UMDH ...
我试图隔离Windows本机代码中的内存泄漏。 我运行了一个测试用例的多次迭代,并将DebugDiag附加到该过程中,以收集有关可疑泄漏(通过PerfMon中的多次运行确认的内存泄漏)的信息。 DebugDiag指出了可疑的调用堆栈,例如 我已经正确配置了符号,现在我想知道如 ...
关于umdh,我有两个基本问题: 如果它只是报告分配而不是释放 分配 ,它如何帮助我发现泄漏? 在差异结果中,我得到了许多新分配,但是没有关于哪些已被释放和哪些未被释放的报告(因此导致泄漏)。 差异报告通过减小分配大小来排序。 在报告的底部,有一些分配为负数,分配数为0 ...
在Windows 7上的进程上运行UMDH时,我只会收到“无法枚举进程模块”的响应。 当进程最初执行时,转储工作正常,但是当内存使用量增加时,转储失败。 确切的故障点尚不清楚,该错误也没有任何提示。 ...
在Windows Vista中,我发现UMDH非常有用,但我找不到适用于Windows 7/8的版本,微软是否弃用了GFlags和UMDH? 如果是这样,我可以通过Windows 7/8批准的工具中的调用堆栈获取堆上的分配日志? ...
我正在尝试使用UMDH来查找在哪里分配了大块内存,但是我得到的结果似乎完全荒谬。 我启动程序,等待它达到平衡,然后使用umdh捕获快照。 然后,我执行使它消耗内存的活动,等待它再次达到平衡,然后获取另一个快照。 然后我运行一个差异: 我在perfmon中目睹了500M的其他专用 ...
我正在尝试使用UMDH调试内存泄漏。 但是,它永远不会成功加载符号。 我很确定我已经正确设置了- 但是UMDH拒绝加载ObjectCommunicator.exe的符号: ObjectCommunicator.exe是使用以下选项构建的(使用vc 6.0。是的-它很旧,但是不 ...
我们正在从实现IHttpAsyncHandler的ashx流视频到我们的Silverlight客户端。 在客户端,异步处理程序正在MediaStreamSource的实现中使用。 一切都可以在最新的Firefox,Chrome和Internet Explorer 8中正常运行。 ...
在Windows 7上运行的C ++本机代码.VS2008。 我的应用程序的特定状态更改将工作集(私有工作集)从16Mb(6.5Mb)增加到38Mb(22Mb)。 由于这似乎过度,我使用umdh检查了堆更改。 我发现之前和之后堆的差异增加了〜9Mb。 是什么原因导致工作集中的额外 ...
我是使用UMDH的新手,但在理解如何处理其输出的一些错误时遇到了一些麻烦。 我遵循典型用法(来自MS网站): 在另一个终端窗口中: 然后回到原始终端窗口: 但是我从UMDH收到以下警告 当我第二次调用UMDH时,遇到相同的错误,并且当我使用UMDH区分两个快照时 ...
我正在使用umdh.exe分析可能的内存泄漏。 我对umdh.exe的“ -g”选项有疑问。 我在网上搜索,并且可用的文档显示“记录该过程未引用的堆块(“垃圾回收”)。 这是否意味着umdh.exe -g已经列出了泄漏的内存(因为在此过程中没有对它的引用)? 请澄清。 在此 ...
我以前曾经使用过UMDH十几次,从来没有遇到任何问题。 突然间,我的转储文件中的堆栈跟踪中没有函数名称 - 只是一系列地址。 我已经启用了: gflags exe_name + ust 我启动exe_name,然后我做 umdh -p:pid one.txt umd ...