xperf 拒绝加载任何符号

Posted

技术标签:

【中文标题】xperf 拒绝加载任何符号【英文标题】:xperf refusing to load any symbol 【发布时间】:2012-05-11 01:34:56 【问题描述】:

使用这些命令行:

设置 _NT_SYMBOL_PATH=srv*C:\symbols*http://msdl.microsoft.com/downloads/symbols XPerf -on FILE_IO XPerf -d trace.etl XPerf -symbols 详细 -i trace.etl > output.csv

我得到以下输出:

XPerf:警告:对跟踪处理应用访问限制 xperf:使用符号路径:srv*C:\symbols*http://msdl.microsoft.com/downloads/symbols xperf:使用可执行路径:srv*C:\symbols*http://msdl.microsoft.com/downloads/symbols xperf:使用 SymCache 路径:\SymCache xperf:SymCache 引擎版本:v1.1 xperf:接受的最低 SymCache 版本:v1.1

xperf:可接受的最低 SymCache 版本:v1.1 [1/2] 100.0% [2/2] 100.0%

            Warning: This trace does not contain the information needed to perform proper symbol decoding.
            It was most likely stopped improperly. Please consult the documentation for information on how
            to stop trace sessions (for example XPerf -stop <logger names> -d <merged.etl>)

            If you still have access to the machine on which this trace was collected, you can have XPerf
            add the required symbol information by running the following on that machine:

                    XPerf -merge <trace1.etl> <trace2.etl> ... <merged.etl>

            Running this command on any machine other than the one on which the trace was collected will
            result in incorrect symbol decoding.

我做错了什么?

【问题讨论】:

【参考方案1】:
XPerf -merge trace.etl trace_with_correct_symbol_decoding_info.etl

现在您可以使用原始命令解析 trace_with_correct_symbol_decoding_info.etl:

XPerf -symbols verbose -i trace_with_correct_symbol_decoding_info.etl > output.csv

merge命令不仅合并了多个etl文件,还“添加了安全符号解码所需的图像识别信息”。

D:\>xperf -help merge
    Trace merge options:

    xperf -merge trace1.etl trace2.etl ... merged.etl

        -Merge      trace1.etl trace2.etl ... merged.etl Merge trace1.etl trace2.etl ... into
                                     merged.etl, also adding image identification
                                     information required for safe symbol
                                     decoding.

【讨论】:

以上是关于xperf 拒绝加载任何符号的主要内容,如果未能解决你的问题,请参考以下文章

无法让 xperfview 加载 DLL 的符号

xperf 调用堆栈跟踪,特定于 dll

创建符号链接时权限被拒绝

Visual Studio 没有为此文档加载任何符号

“断点目前不会被击中。没有为此文档加载任何符号。” - .pdb 从错误的地方加载?

远程调试 .Net 应用程序“没有为此文档加载任何符号”时出现问题。