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

使用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 filename 不幸的是,fio_output.txt文件包含一个可以访问的每个文件的列表(从我的Web浏览器,IDE等)。更令人沮丧的是,如果我手动打开xperfview并打开文件I / O摘要表,我可以看到我的进程(在这种情况下为python.exe)和它读取的一个文件(用于测试目的)但似乎无法找到在CLI上输出相同数据的方法,这是我需要的 - 一种生成文件访问信息的无人值守的自动方法。     
已邀请:
如果要查看此数据,则应将跟踪加载到WPA中,打开文件I / O表,并相应地排列列。由于您希望按进程分组,因此首先应该包含进程列,然后是橙色条,然后是所需的任何数据列。 如果要导出数据以编程方式解析它,则应使用WPT 8.1中的wpaexporter.exe。请参阅我写的博客文章,描述如何执行此操作: https://randomascii.wordpress.com/2013/11/04/exporting-arbitrary-data-from-xperf-etl-files/ 使用wpaexporter可以准确确定要导出的数据列,而不是受xperf.exe为您提供的有限的跟踪处理操作集约束。     
我怀疑你可以从tracerpt.exe获取这些数据 - 我试试看     

要回复问题请先登录注册