我被推荐使用 gperftools 来简单快速地分析我的代码。此外,-lprofiler 的集成已经在我得到的代码的 CMAKE 中完成。现在我将源代码迁移到 Jetson TX1 并且运行良好,我尝试使用 gperftools。
不幸的是,当我使用 perftools 启动程序时,分段错误开始出现
env CPUPROFILE=./lts.prof /mybin
我已经阅读了文档,他们谈到了在 64 位 Linux 上使用正确的 libunwind。不幸的是,给定的库(0.99 libunwind,http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-beta.tar.gz)似乎不喜欢 Tegra 平台。
首先,config.guess 有一个问题,我必须用位于 /usr/share/automake*/ 中的那个进行更改。
configure: error: cannot guess build type; you must specify one
然后它会像这样出错:
config.status: error: ./include/libunwind-aarch64.h: file not found
我尝试使用主树,因为他们添加了 AARCH64(出现在错误消息中),但随后我收到其他消息:
aarch64/is_fpreg.c:31:21: error: 'UNW_AARCH64_V0' undeclared (first use in this function)
return (regnum >= UNW_AARCH64_V0 && regnum <= UNW_AARCH64_V31);
aarch64/is_fpreg.c:31:49: error: 'UNW_AARCH64_V31' undeclared (first use in this function)
return (regnum >= UNW_AARCH64_V0 && regnum <= UNW_AARCH64_V31);
- 任何人都能够在 Tegra Dev Kit 或类似平台上使用 gperftools 吗?
- libunwind 是段错误问题的一部分吗?代码再次在没有 -lprofiler 和 CPUPROFILER 的情况下工作。