问题标签 [procmon]
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.
qt - 如何让 QT 应用程序以低内存使用量显示大量数据?
(它是一个基于QT 5.7.0的类似Sysinternal's-Process-Monitor的系统监控程序,可以监控和记录系统中大部分进程的行为。
程序视图
内存使用情况
如您所见,当记录 30000+ 个事件时,它会花费 100MB+ 内存。并且内存使用可以轻松增加到1.0GB,当有更多事件时甚至可以增加到2.0GB,这在低性能机器中是不可接受的。我应该将这些事件保存在 sql 数据库中吗?
我使用 QTableView 和自定义模型继承自 QAbstractTableModel 附加到它,它只显示可见项目。内存问题不是由 UI 引起的,因为即使我删除了 tableview 也会消耗很多内存。
windows - Wireshark 无法检测到 TCP 上的本地进程通信
我正在使用procmon来分析程序的行为。
我可以看到该程序正在通过 TCP 在本地与另一个程序进行通信:
此“Windows 进程监视器”不会记录两个程序之间发送的实际内容。因此,我将使用 Wireshark 并嗅探每个可用的捕获接口(LAN 是我希望看到消息流量的地方)。
不幸的是,Wireshark 没有记录 procmon 声称的任何流量。
我尝试了各种过滤器,我确信我没有忽略 Wireshark 生成的结果。
Wireshark 是否有无法嗅探这些消息的原因?
我可以做些什么来查看 procmon 和 Wireshark 之间的互补结果吗?
procmon - 如何按时间过滤 procmon 结果?
在一天中的某个时间过滤 procmon 结果并不像人们期望的那样工作。假设结果显示时间为“7:44:26.4065994 AM”的行。
- 如果您过滤“时间”以“7:44:26”开头 ,则所有结果都会被过滤掉。
- 如果您过滤“时间”包含“7:44:26”,您会得到预期的结果。
- 如果您尝试更精确地过滤,指定包含'7:44:26.40',所有结果都会被过滤掉。
与其他被统一视为字符串的 procmon 字段不同,时间字段显然不是。可能有一些方法可以精确过滤,但这并不明显。
c++ - 单线程程序创建两个线程
我正在(使用Procmon)分析我租用的两个不同 VPS 中的一个非常简单的程序。该程序是一个最小的 C++ 程序:
我在两台机器上都用g++ (tdm64-1) 5.1.0编译了前面的代码。我只是将代码编译为g++ Test.cpp -o Test.exe
. 之后,我Test.exe
在两台服务器上运行该文件并使用 Procmon 进行过滤。第一个 VPS 显示了单个线程 ( procmon csv ) 的创建,但第二个 VPS 创建了两个线程 ( procmon csv )。我想知道为什么会发生这种情况,以及如何确保“单线程程序”在第二台服务器中只创建一个线程。也许我在这里错过了一些东西。我将描述每个 VPS 的属性:
第一个 VPS
操作系统:Windows Server 2012 R2
处理器:Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz 2.40 GHz,2 核,2 个逻辑处理器
安装内存 (RAM):6.0 GB
系统类型:64 位运行系统,基于 x64 的处理器
第二个 VPS
操作系统:Windows Server 2016
处理器:Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz 2.20 GHz,6 核,6 个逻辑处理器
安装内存 (RAM):24.0 GB
系统类型:64 位操作系统, 基于 x64 的处理器
为了进一步分析,我稍微更改了代码如下:
我运行了之前的代码并使用Process Explorer查看了它的行为,并在程序运行 30 秒后创建并删除了第二个线程。
windows - 如何在启动时禁用进程监视器的登录
如何使用已停止的所有日志记录组件的日志记录打开进程监视器。
默认情况下,它开始捕获所有没有时间做的日志CTRL+E停止捕获事件并应用我的过滤器。
它足够快地填充虚拟内存以成为“无响应”。
我对使用过滤器将文件 I/O 记录到特定路径感兴趣,但由于日志随不感兴趣的组件一起增长,进程监视器挂起。
我没有找到与启动进程监视器相关的任何答案。
c# - 如何检测何时在目录中检查文件?
我希望能够以编程方式(C#)检测程序何时尝试从我在 Windows 上控制/拥有的目录加载(或以其他方式访问)不存在的 DLL。
我可以使用 Sysinternals Process Monitor (ProcMon) 手动完成此操作。例如,使用下面显示的过滤器,我能够检测到ClientPrj.exe程序尝试从我控制的目录 (C:\MyDirectory) 加载 dll (GetEvenOdd.dll);
我如何以编程方式完成类似的事情?
到目前为止,我的尝试涉及在文件夹上手动启用 Windows 审核、运行程序,然后检查 Windows 事件日志中的任何审核条目,但与此文件夹相关的事件日志中没有出现新条目。
请注意,我并不是要完全复制 procmon,我只是想检测何时尝试从我控制的目录加载文件(在本例中为 DLL)。
边注; 我不清楚为什么 ProcMon 将加载 DLL 的尝试列为“CreateFile”操作,因为“ClientPrj.exe”程序只是试图加载 DLL(在 C++ 中,“ClientPrj.exe”程序正在使用LoadLibrary加载 DLL 的方法)。
windows - Procmon 的命令行版本
我正在使用 Windows 7,我想监视新的 Process Create 事件。(即为每个创建的进程获取一个条目,并提供有关它的完整详细信息。)我在 Procmon 中成功地做到了这一点,但我想在 shell 中做到这一点,并在没有 GUI 的情况下获得文本输出。
是否有执行此操作的 CLI 命令?例如,我可以告诉它“请用某某路径列出某某类型的所有事件”,它会无限期地运行,将这些进程的详细信息写入标准输出?
windows - procmon 中持续时间和相对持续时间之间的差异
在下图中,我们可以看到有 2 个时间,即持续时间和相对持续时间。我无法找出它们之间的基本区别。为什么进程创建的持续时间是 0.000000?我能知道在 procmon 或其他软件中启动该过程需要多少时间吗? procmon 进程创建持续时间截图
c# - 如何在 C# 中记录低级 OS 文件事务?
由于文件/进程监视器在记录时在过滤和不必要的重复方面不足,我想重新创建该程序的功能并实时记录所有 Windows 文件操作。
我想记录各种属性,例如时间、进程名称、源路径、目标路径、操作、结果和细节,就像Process Monitor 一样。
如何让 C# 从操作系统中提取此信息?
编辑:正如 zett42 指出的那样FileSystemWatcher
,例如,从进程本身创建的文件事件不会被拦截。例如,这些事务都没有显示,即使我添加了事件:、、、Changed
和,Created
并将标志设置为 true 。Renamed
Deleted
FileSystemWatcher
EnableRaisingEvents
编辑 2:使用 SimonMourier 对 Microsoft.Diagnostics.Tracing.TraceEvent nuget 包的建议,我设法敲出下面的代码。
这部分被放入一个后台工作者中:
然后创建的 FileIOWrite 事件在调用时(自动)运行以下内容:
不幸的是,FileIOReadWriteTraceData.FileName
没有拾取 Procmon 拾取的东西,例如(例如),非常常见的 Chrome 内容,例如写入C:\Users\Dan\AppData\Local\Google\Chrome\User Data\Default\Cookies-journal
或C:\Users\Dan\AppData\Local\Google\Chrome\User Data\Default\Current Session