第一个功能未知

Posted

技术标签:

【中文标题】第一个功能未知【英文标题】:first function unknown 【发布时间】:2011-07-28 17:13:57 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

    是的-g 足以在您的库中获取调试符号。如果要调试某些东西,最好不使用优化。 如果环境相同,应该没关系。

【讨论】:

mmhh...好问题。我只使用 -pthread 作为选项和其他已经使用 -g 构建的库。我假设当我给 -g 时编译器会为我做这件事。我错了吗? @Abruzzo 我认为这还不够,但我不确定【参考方案2】:

我会检查在您程序的生命周期内何时调用此“未知”函数。如果在 main 之前调用了未知函数,那么它不是您的代码,您不必真正担心它。如果它在 main 之后,那么它可能仍然不是您的代码,但需要更多调查。

【讨论】:

【参考方案3】:

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

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

Code Profiler for ARM

【讨论】:

这个问题是大约一年前提出的。只是说。

以上是关于第一个功能未知的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的元组中的第一个值总是未知的?

增广矩阵有未知数如何化简

多路分发

BetaScrum meeting 2

未捕获的未知 cloud_name

如何收集未知的第一(批)维度的张量?