问题标签 [process-explorer]

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 回答
1210 浏览

windbg - 使用任务栏、进程资源管理器、AdPlus 等获取转储

那些转储是完整的转储吗?以后可以使用 Windbg 分析的最佳转储是什么?

0 投票
2 回答
2641 浏览

.net - 任务管理器不同意 Process Explorer?

我正在尝试追踪我的 .NET 应用程序中的内存泄漏。Windows 任务管理器报告内存使用量保持不变,而进程资源管理器报告内存使用量正在增加。

在任务管理器中,我正在查看唯一的内存列“内存(私有工作集)”。在 Process Explorer 中,我正在查看“Private bytes”列,因为它正在提高,而“Working set”下的值不是。

现在,当然 Process Explorer 是正确的,因为在多次分配后,我的应用程序因内存不足异常而崩溃。问题是,为什么任务管理器会误报应用程序的内存使用情况?不仅如此,它还误报了全局系统可用内存(性能选项卡中的图表保持不变)。

不需要我的代码,但这里是为了完整性。它显示了一个包含大数组的空窗口。当按下任意键时,窗口关闭并打开一个新窗口,其中包含一个新数组。旧窗口已经泄露,可能是由于 qt4dotnet GUI 库中的错误。

操作系统:Windows 7

有趣的注意事项:当我将“数据”设为二维锯齿状维度数组时[1000 * 1000 * 100][1],任务管理器确实会报告提高内存使用率。

0 投票
2 回答
9330 浏览

windows-7 - Svchost:如何使其每个 svchost.exe 实例仅运行一个模块?如何获取扩展进程信息?

我的一个应用程序有问题。我运行应用程序,一切正常。当我关闭这个应用程序时,我注意到系统中的一个“svchost”进程占用了大约 95-100% 的 CPU,我必须弄清楚是什么占用了这么多 CPU 周期。

我为自己设定了非常简单明了的目标:

  1. 获取进程信息或占用大量 CPU 的特定“svchost”
  2. 我知道 svchost 进程是用来做什么的,所以我省去了你们向我解释它的时间。所以现在我必须知道这个流氓 svchost 加载了哪些模块。
  3. 我运行我的应用程序,关闭它并确保我的进程完全关闭,不再在内存中。然后我得到了占用 100% CPU 的 svchost 的 PID
  4. 我运行了 ProcessExplorer(来自 sysinternals),获得了有关此 svchost 托管了多少服务以及哪些服务的信息。他们大约有 12 项服务。我不会理会这个列表,因为我更关心如何识别这 12 个服务中的哪一个正在占用 CPU 周期。
  5. 现在我有了清单,这里开始棘手的部分......我想做以下 2 个选项中的 1 个

选项 1: 如何确定这 12 项服务中的哪一项占用了如此多的 CPU?我能否获得此 svchost 进程的扩展信息,它为我提供了基于此进程中托管的“每个服务”的详细信息,而不是基于我现在拥有的进程?

选项 2: 是否可以配置 windows 以使 svchost 每个 svchost 实例仅运行一项服务?

如果在如何调查方面有更好的选择,缩小此问题的根本原因,请告诉我。

0 投票
1 回答
1820 浏览

memory - WinDbg 转储列表私有/共享工作集。DLL模块内存问题

你们知道 WinDbg 中是否有任何方法可以列出模块内存使用情况,就像在 Process Explorer 的 DLL 窗格中看到的那样?我想知道 WS Private Shareable Shared Total。我有一个使用 Process Explorer 制作的完整应用程序转储,我怀疑 DLL 存在内存泄漏。我想比较两个类似的转储,看看模块内存发生了什么变化。

谢谢

0 投票
1 回答
14530 浏览

windows - Process Explorer:提交历史图表显示什么?

Process Explorer中可用的Memory图表中,顶部图表显示Commit History。这在操作系统级别实际上表明了什么?

为了试验这是否是进程在堆上分配的内存,我编写了一个小程序,多次递增地 malloc-ed 100 MB。Commit History 图表增加了一段时间(最多 1.7 GB 的内存分配),此后尽管程序 malloc-ing 内存并没有增长。

那么,这张图说明了什么?如何使用这些信息来理解/分析 Windows 的状态?

0 投票
1 回答
1524 浏览

windows - 如何制作 Process Explorer 的“替换任务管理器”功能?

Process Explorer有一个不错的功能替换任务管理器

在此处输入图像描述

我只是想知道 Mark Russinovich 如何实现这一点。
使用什么技巧来实现这一点?

0 投票
1 回答
4515 浏览

winapi - Process Explorer 是否支持 API 或从控制台命令调用?

假设我安装了多个版本的软件,其中一些 DLL 注册为 COM。例如:

怎么知道注册了哪个comObject.dll?(哪个路径?在文件夹“version1”或“version2”下?) 答:一种方法是使用“Process Explorer”,转到“Find | Find Handle or DLL... ”,输入“comObject.dll”并单击“搜索”按钮。 然后路径显示在列表中

现在我的问题是:如果一个软件包很大,安装了数百个基于 COM 的 DLL,我不想手动打开“Peocess Explorer”并搜索每个 DLL/OCX/EXE,不仅如此,在搜索结果中,我不可能将列表内容复制出来!

我想要的只是一个像以下命令一样运行的工具,我可以在 bat 文件中运行。

output.txt 可能如下所示:


在上面的示例中,comObject1.dll 和 comObject2.dll 来自 Version1 文件夹,而 comObject3.dll 来自 Version2 文件夹。

0 投票
1 回答
99 浏览

c# - 获取活动窗口代码文件的程序

我有Process Explorer v15.13。它工作正常。我可以判断一个活动窗口属于哪个进程。另一方面,PE 调试器说它与 VS 2010(或至少团队资源管理器 2010 MSSCCI)不兼容。

我希望能够查明与活动 winform 相关的 .cs 设计器代码。这可能与任何程序有关吗?

0 投票
1 回答
2035 浏览

c# - .NET 3.5 应用程序 mscorwks.dll InitializeFusion 指示的高 CPU 使用率

我们在 Windows 7 机器上运行的 .NET 3.5 C# wpf 客户端应用程序消耗了大量 CPU,当我们使用进程资源管理器查看进程时,我们看到一堆线程,其起始地址为 mscorwks.dll!InitialzeFusion。这些线程消耗了很大比例的 cpu 周期。有什么想法可以诊断/调试这些线程到底在做什么?

需要注意的是,我看到此时有 55 个线程正在运行,其中大约 20 个正在积极消耗 CPU,而其他线程似乎什么也没做。

这是来自其中一个线程的堆栈:

USER32.dll!SystemParametersInfoW+0xc9

USER32.dll!IsProcessDPIAware+0x1d1

ntdll.dll!KiUserCallbackDispatcher+0x1f

USER32.dll!SfmDxSetSwapChainStats+0x1a

USER32.dll!GetMessageW+0x2a

mscorwks.dll!IEE+0xd23b

WindowsBase.ni.dll+0x11179b

WindowsBase.ni.dll+0x11e517

WindowsBase.ni.dll+0x117735

WindowsBase.ni.dll+0x1175ee

0 投票
2 回答
26311 浏览

c# - 在进程资源管理器中调试 RtlUserThreadStart

我有一个基于 3.5 构建的多线程 wpf 应用程序。当我通过 Process Explorer 查看正在运行的线程时,我看到 8 个线程都具有相同的起始地址 ntdll.dll!RtlUserThreadStart,并且所有 8 个线程的 CPU 值都在 3-6+ 之间,并且具有较高的 Cycles Delta。我无法弄清楚这些线程在做什么。它总是相同的线程。它永远不会在应用程序的同一实例中发生变化。当我同时调试我的应用程序并暂停调试器时,所有这些线程都为堆栈显示一行 System.Threading.ConcurrencyScheduler.Scheduler.WaitForWork() 或 System.Threading.Monitor.Wait()。

我为 Visual Studio 启用了符号文件,我在这些线程上看到了以下堆栈:

当我查看进程监视器中线程上提供的堆栈时,我看到以下示例:

或者:

作为该项目的附加说明。我的电脑是一个4核的单CPU。当我们在具有 4 个内核的双 CPU 上运行相同的应用程序时,我们会看到线程数从 8 个变为 16 个。