英特尔® VTune™ 放大器 XE 2013 未知源文件

Posted

技术标签:

【中文标题】英特尔® VTune™ 放大器 XE 2013 未知源文件【英文标题】:intel® VTune™ Amplifier XE 2013 Unknown source file 【发布时间】:2014-03-19 02:26:26 【问题描述】:

我的报告中有未知的源文件,这使我无法通过正确的循环来分析我的报告

我想通过 vtune 分析显示源代码,但是如果我编译 c 并获取执行文件。当我试图分析行为时,我只能检查汇编代码!有人知道如何显示源代码吗?另外,如果我想做 itt_pause() 和 itt_resum() 我想在没有 icc 编译器的情况下怎么做 我将文件编译为

gcc -c -std=c99 -O2 app.c
gcc -o app app.o

我需要分析的源代码:

#include <stdio.h>
#include <stdlib.h>


int foo_data_collected1()

    int sum = 0;
    for (int i = 0; i < 100; i++)
    
        if ((i & 0xffffffff) == 0)
        
            sum++;
            printf("T");
        
        printf("F");
    

    return sum;



int foo_data_collected2()

    int sum = 0;
    for (int i = 0; i < 10000000L; i++)
    
        if ((i & 2) == 0)
        
            sum++;

        
    

    return sum;


int foo_data_collected3()

    int sum = 0;
    for (int i = 0; i < 10000000L; i++)
    
        if ((i & 0x80000000) == 0)
        
            sum++;
        
    

    return sum;


int foo_data_collected4()

    int sum = 0;
    for (int i = 0; i < 10000000L; i++)
    
        if ((i & 4) == 0)
        
            sum++;
        
    

    return sum;


int foo_data_collected5()

    int sum = 0;
    for (int i = 0; i < 10000000L; i++)
    
        if ((i & 3) == 0)
        
            sum++;
        
    

    return sum;


int main()


    int sum = 0;

    sum = foo_data_collected1();

    printf("\nSum = %d\n", sum);


    return 0;

【问题讨论】:

【参考方案1】:

在编译源代码时使用-g 编译器选项以添加调试信息。

gcc -g -c -std=c99 -O2 app.c
gcc -o app app.o

【讨论】:

以上是关于英特尔® VTune™ 放大器 XE 2013 未知源文件的主要内容,如果未能解决你的问题,请参考以下文章

性能测量 - 获取每个函数的平均调用时间。英特尔 Vtune 放大器

vtune 函数调用次数

Intel Vtune Amplifier XE2016 对 VS2015 控制台应用程序的高级热点分析无法正常工作

VTune 中未显示某些函数调用

如何汇总英特尔放大器批处理结果?

英特尔 VTune 命令行错误