第一个功能未知

时间:2011-04-03 17:16:38

标签: c++ c profiling kcachegrind

我正在使用KCachegrind/Cachegrind做第一步。 我在机器A上运行Cachegrind然后我将输出文件移动到我安装了KCachegrind的机器B上。

我不知道为什么,但我总是将第一个功能显示为(unknown)并且它很糟糕,因为我在那里显示了图片中显示的19.46用法。 我做错了什么?输出文件是否应该包含所有必要的信息?

  1. 我正在使用编译标志-g这样就够了吗?我想顺便使用优化版本,但我不知道它是否有效。
  2. 如果我在我进行分析的同一台机器上运行Kcachegrind会不会是最好的?
  3. enter image description here

3 个答案:

答案 0 :(得分:1)

我会检查你在程序的生命周期中调用这个'未知'函数的时间。如果在main之前调用未知函数,那么它不是你的代码,你不应该真的担心它。如果它在主要之后它仍然可能不是你的代码,但将需要更多的调查。

答案 1 :(得分:0)

您是否链接了所有库的调试版本?如果没有,您将看不到函数调用的结束位置。

  1. -g足以在您的库中获取调试符号。如果要调试某些内容,最好不要使用优化。
  2. 如果环境相同,那就不重要了。

答案 2 :(得分:0)

机器A和机器B是否具有相同的架构,即x86?

如果你没有相同的架构会出现问题,因为Kcachegrind将无法获得当前机器中不可用的功能的信息。

Code Profiler for ARM