1

当我从 Windows 命令行运行时,我会因为说文件已经存在而log.cmd收到错误消息。我知道其他进程也使用 Windows ETL,并且由于用于跟踪事件,它在某种意义上“冲突”。尽管如此,我还是得到了大量通过再次运行合并的 ETL 文件。xperf*.etlgpuviewxperflog.cmd

我讨厌使用cmd并尝试使用cygwin bash. 我得到类似的错误,但除非DXCstate.etl,我没有看到其他任何东西。

我正在以管理员权限运行终端,并log.cmd拥有 755 权限。

$ ./log.cmd
Xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: DxTest: Cannot create a file when that file already exists. (0xb7).
Xperf: error: DxLogger: Cannot create a file when that file already exists. (0xb7).
The trace you have just captured "C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\gpuview\DXCState.etl" may contain personally identifiable information, including but not necessarily limited to paths to files accessed, paths to registry accessed and process names. Exact information depends on the events that were logged. Please be aware of this when sharing out this trace with other people.
Xperf: error: DxcStackLogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: DxcLogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: UMDLogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: DXGILogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: Dx11Logger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: D3D10Level9Logger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: MFLogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: OLogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: XAMLLogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: D2DLogger: Cannot create a file when that file already exists. (0xb7).
Xperf: error: D2DScenariosLogger: Cannot create a file when that file already exists. (0xb7).

$ ls
DXCState.etl*  DxEtw.dll*  EventsForStackTrace.txt*  dota2/  GPUView.chm*  GPUView.exe*    
LDDMCore.man*  log.cmd*  plugins/  README.TXT*  tplugins/  UMDEtw.man*
4

1 回答 1

2

如果您查看 log.cmd,您将看到每个记录器都与一个文件名相关联。例如,我们有这一行:

"%~dp0"..\Xperf -start DxcLogger -on %TRACE_DXC_MIN% %TRACE_LARGE_BUFFERS% -f DXC.etl

如果您可以出现“当该文件已存在时无法创建文件”错误,则表示 DXC.etl 已存在,这意味着先前的 log.cmd 调用没有完全退出并且没有停止记录到该文件。您可能使用 Ctrl+C 取消了批处理文件。这与 Process Explorer 或 Resource Monitor 没有冲突,因为它们不会特别使用 DXC.etl。

因此,重新启动您的机器以恢复良好状态,并小心在其工作过程中暂停 log.cmd。

或者,停止使用 log.cmd。请改用 wprui.exe。有关详细信息,请参阅此博客文章:

http://randomascii.wordpress.com/2013/04/20/xperf-basics-recording-a-trace-the-easy-way/

于 2014-03-18T02:48:06.110 回答