showpdf

用途

显示写入 PDF 和 PDF 映射文件的部分概要分析信息。 要使用此命令,必须首先使用 -qpdf1 选项编译程序。

语法

读取语法图跳过可视语法图showpdf人民之声 -fpdfname -mpdfmapdir -xml

参数

人民之声
包含概要文件定向反馈 (PDF) 文件的目录。 如果在 PDF1 步骤之后未更改 PDFDIR 环境变量,那么 PDF 映射文件也包含在此目录中。 如果未指定此参数,那么编译器将使用 PDFDIR 环境变量的值作为该目录的名称。
pdfname
是 PDF 文件的名称。 如果未指定此参数,那么编译器将使用 .<output_name>_pdf 作为 缺省情况下PDF 文件的名称, 其中 <output_name> 是使用 -qpdf1编译程序时生成的输出文件的名称。
pdfmapdir
包含 PDF 映射文件的目录。 如果未指定此参数,那么编译器将使用 PDFDIR 环境变量的值作为该目录的名称。
-xml
确定 PDF 信息的显示格式。 如果指定了此参数,那么将以 XML 格式显示 PDF 信息; 否则,将以文本格式显示 PDF 信息。 因为值概要分析 和高速缓存未命中概要分析 信息只能以 XML 格式显示,所以 XML 格式的 PDF 报告包含的信息多于文本格式的报告。

使用量

包含静态信息的 PDF 映射文件是在 PDF1 步骤期间生成的, PDF 文件是在执行生成的应用程序期间生成的。 使用 showpdf 命令,您可以查看从应用程序收集的以下类型的概要分析信息:
  • 块计数器概要分析
  • 调用计数器概要分析
  • 值概要分析
  • 高速缓存不命中概要分析(如果在 PDF1 步骤中指定了 -qpdf1=level=2 选项)。
showpdf 命令仅接受二进制格式的 PDF 文件,并且需要 PDF 和 PDF 映射文件来显示 PDF 信息。 可以使用文本或 XML 格式来查看前两种类型的概要分析信息。 然而,只能使用 XML 格式来查看值概要分析和高速缓存不命中概要分析信息。

如果在 PDF1 步骤与执行生成的应用程序之间更改了 PDFDIR 环境变量,那么将在单独的目录中生成 PDF 和 PDF 映射文件。 在这种情况下,必须对 showpdf 命令指定这两个文件的目录。

您可以在 /opt/IBM/xlC/16.1.0/bin/中找到 showpdf

示例

以下示例显示如何使用 showpdf 命令来查看 Hello World 应用程序的概要分析信息。

程序文件 hello.c 的源如下所示:
#include <stdio.h>  
void HelloWorld()
{
   printf("Hello World");
}
main()
{
   HelloWorld();
   return 0;
}
  1. 编译源文件。
    xlc -qpdf1 -O hello.c
    
  2. 使用典型数据集或多个典型数据集运行生成的可执行程序 a.out
  3. 如果要以文本格式查看可执行文件的概要分析信息,请运行不带任何参数的 showpdf 命令。
    showpdf 
    
    结果如下:
    HelloWorld(67):  1 (hello.c)
    
    Call Counters:
    4 | 1  printf(69)
    
    Call coverage = 100% ( 1/1 )
    
    Block Counters:
    2-4 | 1
    5 |
    5 | 1
    
    Block coverage = 100% ( 2/2 )
      
    -----------------------------------
    main(68):  1 (hello.c)
    
    Call Counters:
    8 | 1  HelloWorld(67)
    
    Call coverage = 100% ( 1/1 )
    
    Block Counters:
    6-9 | 1
    10 |
    
    Block coverage = 100% ( 1/1 )
    
    Total Call coverage = 100% ( 2/2 )
    Total Block coverage = 100% ( 3/3 )
    如果要以 XML 格式查看概要分析信息,请运行带有 -xml 参数的 showpdf 命令。
    showpdf -xml
    
    结果如下:
      <?xml version="1.0" encoding="UTF-8" ?> 
    - <XLTransformationReport xmlns="http://www.ibm.com/2010/04/CompilerTransformation" version="1.0">
      - <CompilationStep name="showpdf">
        - <ProgramHierarchy>
          - <FileList>
            - <File id="1" name="hello.c">
              - <RegionList>
                  <Region id="67" name="HelloWorld" startLineNumber="2" /> 
                  <Region id="68" name="main" startLineNumber="6" /> 
                </RegionList>
              </File>
            </FileList>
          </ProgramHierarchy>
          <TransformationHierarchy /> 
        - <ProfilingReports>
          - <BlockCounterList>
            - <BlockCounter regionId="67" execCount="1" coveredBlock="2" totalBlock="2">
              - <BlockList>
                  <Block index="3" execCount="1" startLineNumber="2" endLineNumber="4" /> 
                  <Block index="2" execCount="0" startLineNumber="5" endLineNumber="5" /> 
                  <Block index="4" execCount="1" startLineNumber="5" endLineNumber="5" /> 
                </BlockList>
              </BlockCounter>
            - <BlockCounter regionId="68" execCount="1" coveredBlock="1" totalBlock="1">
              - <BlockList>
                  <Block index="3" execCount="1" startLineNumber="6" endLineNumber="9" /> 
                  <Block index="2" execCount="0" startLineNumber="10" endLineNumber="10" /> 
                </BlockList>
              </BlockCounter>
            </BlockCounterList>
          - <CallCounterList>
            - <CallCounter regionId="67" execCount="1" coveredCall="0" totalCall="0">
              - <CallList>
                  <Call name="printf" execCount="1" lineNumber="4" /> 
                </CallList>
              </CallCounter>
            - <CallCounter regionId="68" execCount="1" coveredCall="0" totalCall="0">
              - <CallList>
                  <Call name="HelloWorld" execCount="1" lineNumber="8" /> 
                </CallList>
              </CallCounter>
            </CallCounterList>
            <ValueProfileList /> 
            <CacheMissList /> 
          </ProfilingReports>
        </CompilationStep>
      </XLTransformationReport>

相关信息