【问题标题】:intel® VTune™ Amplifier XE 2013 Unknown source file英特尔® VTune™ 放大器 XE 2013 未知源文件
【发布时间】:2026-01-11 16:40:01
【问题描述】:

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

我想通过 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;
}

【问题讨论】:

    标签: intel-vtune


    【解决方案1】:

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

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

    【讨论】: