首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xperf列出每个进程访问的文件?

使用xperf列出每个进程访问的文件?
EN

Stack Overflow用户
提问于 2011-04-05 11:58:52
回答 2查看 1.1K关注 0票数 3

使用xperf,我可以生成一个跟踪,并获得所有文件的“平面”列表,如下所示:

xperf -on FileIO+FILE_IO+FILE_IO_INIT+FILENAME -stackwalk FileRead+FileWrite+FileDelete

xperf -start FileIOSession -heap -PidNewProcess "C:\Python27\x86\python.exe scratchy.py“-WaitForNewProcess -BufferSize 1024 -MinBuffers 128 -MaxBuffers 512 -stackwalk HeapAlloc+HeapRealloc -f ./tempheap.etl

xperf -stop FileIOSession -stop -d fileio.etl

xperf -i fileio.etl -o fio_output.txt -a文件名

不幸的是,fio_output.txt文件包含了(从我的web浏览器、集成开发环境等)访问过的所有文件的列表。更令人沮丧的是,如果我手动打开xperfview并打开文件I/O汇总表,我可以看到我的进程(本例中为python.exe)和它读取的一个文件(用于测试目的),但似乎找不到一种在CLI上输出相同数据的方法,而这正是我所需要的--一种自动生成文件访问信息的无人值守方法。

EN

回答 2

Stack Overflow用户

发布于 2015-06-09 03:42:39

如果要查看此数据,则应将跟踪加载到WPA中,打开文件I/O表,并适当地排列列。由于您希望按流程进行分组,因此您应该首先拥有process列,然后是橙色条,然后是您想要的任何数据列。

如果您希望导出数据以编程方式解析它,那么您应该使用wpaexporter.exe,这是WPT8.1中的新特性。请参阅我撰写的这篇描述如何做到这一点的博客文章:使用wpaexporter的https://randomascii.wordpress.com/2013/11/04/exporting-arbitrary-data-from-xperf-etl-files/允许您准确地决定要导出哪些数据列,而不是受xperf.exe提供的有限跟踪处理操作集的约束。

票数 1
EN

Stack Overflow用户

发布于 2011-04-05 14:13:58

我怀疑您可以从tracerpt.exe获取这些数据--我会试一试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5547019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档