5

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

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

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

在此处输入图像描述

4

3 回答 3

1

I would check when this 'unknown' function is called in the lifetime of you program. If the unknown function is called before main then its not your code and you shouldn't really worry about it. If its after main then it still might not be your code, but will take some more investigating.

于 2011-12-02T14:31:59.777 回答
0

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

如果您没有与 Kcachegrind 相同的体系结构,则会出现问题,不会有当前机器中不可用的功能的信息。

ARM 代码探查器

于 2012-02-20T05:40:46.010 回答
0

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

  1. -g足以在您的库中获取调试符号。如果要调试某些东西,最好不使用优化。
  2. 如果环境相同,那应该没关系。
于 2011-04-03T18:19:58.617 回答