与 `strace` 类似的工具,但是用于 CPU 指令

与 `strace` 类似的工具,但是用于 CPU 指令

我希望找到类似的东西,strace它可以产生 CPU 使用的指令。例如,我有一个简单的循环,它计算总和并每十次迭代打印一次

float fsum = 0.0;
for(int i = 0; i < 1000; i++) {
  if(i%10==0) {
    fprintf(stderr, "%10.5f%%\n", 100.0*float(i)/float(1000));
  }
  fsum += 1.0/float(i);
}

现在,由于这是一个语句,strace因此将提供有关该语句的信息,但它没有提供有关求和步骤的信息。如果我想获取有关当前正在运行的程序的信息(包括使用的 CPU 指令),有什么办法吗?fprintfwrite(2

注意:我知道gprof需要预先编译的工具。我正在寻找一种方法来找到可能给您的相同信息gprof,但使用当前正在运行的程序,该程序可能已考虑分析而编译。

相关内容