我通过文档读取和使用由于某种原因,我不然而概述的命令似乎得到任何符号,只是一系列在汇总表的功能列“未知数”为除了最上面的组中的应用程序的一切我试图调试....我设置ENVIROMENTAL变量到微软服务器和方含PDB中的应用程式的direcories。我还相信造就了汇总表之前,选择“加载符号”项目。

Arcording的信息,我正在读它应该花一些时间TABL显示,同时它加载符号,但是我表显示几乎立即和只在sprite.exe-> sprite.exe有最上面的项目功能名称,功能的水净化行是空的,或者“未知”

使用Vista SP1

林。

这是我使用的批处理文件。我做任何会防止被加载的sybols?

REM start profiler
xperf -on PROC_THREAD+LOADER+INTERRUPT+DPC+PROFILE^
 -stackwalk profile -minbuffers 16 -maxbuffers 1024 -flushtimer 0^
 -f tmp.etl
REM run the app we want to profile
sprite.exe
REM stop
xperf -d profile.etl
REM set symbol path
set _NT_SYMBOL_PATH = ^
 C:\Projects\C++\fl lib\bin;^ REM dlls
 C:\Projects\C++\fl lib\samples\bin;^ REM main exe
 SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
REM display profile
xperf profile.etl
有帮助吗?

解决方案

什么版本dbghelp.dll的是它使用?我有麻烦使用安装在kernratedbghelp.dll的版本时%SystemRoot%\system32和其他实用程序工作PDB符号。

您可能需要从一个新版本的调试工具的Windows拷贝dbghelp.dllsymsrv.dll到一个目录下XPerf可以找到它。

此外,还需要前“=”以去除空间,否则你定义“_NT_SYMBOL_PATH”变量(包括在名称结尾间隔)。

在一行的末尾包括评论是不会工作的。续行符诸如“^”通常需要是对行的最后一个字符。当我跑该声明(在XP),我结束了“_NT_SYMBOL_PATH”等于“C:\Projects\C++\fl lib\bin; REM dlls”和关于下一行的错误。

其他提示

尝试设置

TRACE_FORMAT_SEARCH_PATH

环境变量。如果不工作,你可能需要手动提取您的PDBS使用TracePdb.exe的TMF文件(或至少使用常规路径,而不是一个SYM *路径)。这是迄今为止使用ETL迹线的最恼人的部分/ XPerf

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top