2011-04-03 66 views
5

我正在做KCachegrind/Cachegrind的第一步。 我在机器A上运行Cachegrind,然后我移动了安装了KCachegrind的计算机B上的输出文件。第一个功能未知

我不知道为什么,但我总是第一个功能显示为(unknown),这是不好的,因为我有那里的图片显示的使用19.46。 我做错了什么?输出文件是否应该具有所有必要的信息?

  1. 我正在使用汇编标志-g够了吗?我想通过这种方式使用优化版本,但我不知道它是否有效。
  2. 难道这是最好的,如果我运行Kcachegrind在同一台机器上,我做我的分析?

enter image description here

回答

1

我会检查这个'未知'功能在您的程序生命期中何时被调用。如果未知函数在main之前调用,那么它不是你的代码,你不应该为此担心。如果它的主要之后它仍然可能不是你的代码,但会采取一些更多的调查。

0

你所链接的所有库的调试版本?否则,你不会看到函数调用结束的地方。

  1. 是的-g足以让你的库中的调试符号。如果你想调试一些东西,最好不要使用优化。
  2. 如果环境相同,则无关紧要。
+0

mmhh ...好的问题。我使用简单的-pthread作为选项以及其他已经使用-g构建的库。我假设编译器会为我做这个,当我给-g..am我错了吗? – 2011-04-03 19:39:45

+0

@Abruzzo我认为这还不够,但我不确定 – 2011-04-04 05:57:05

0

相同架构的机器A和机器B是否是x86?

如果您没有相同的体系结构,则Kcachegrind将无法获得当前计算机上不可用的功能。

Code Profiler for ARM

+1

这个问题在一年前被问到。只是说。 – SigTerm 2012-02-20 07:50:07