我在咬我的牙.
我需要在手臂板上进行分析,并且需要查看调用图。我尝试过使用OProfile、Kernel和谷歌性能工具。所有操作都很好,但不输出任何调用图信息。
这使我得出结论,我没有正确编译我的代码。
在编译C++代码时,我使用下列标志:
Arch专项:
-march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=vfpv3常规:
-fexceptions -fno-strict-aliasing -D_REENTRANT -Wall -Wextra调试(优化):
-O2 -g -fno-omit-frame-pointer我做了很多谷歌搜索,并找到了一些相关的话题:
-mapcs-frame
然而,我不完全理解这些是如何联系在一起的。对于如何使调用图工作,有什么提示吗?
注意(由于Rian的回答):我有兴趣了解一些方法是否和为什么在ARM上花费的时间比x86-64更长(相对于其他方法)。在不同的平台上这样做是没有帮助的(尽管我的代码在这两种平台上都编译,而且我可以在x86-64上进行调用图)。
发布于 2011-11-30 17:32:49
我知道你想在手臂皮层上做你的分析-A8,但是如果你对调用图感兴趣,为什么不为x86编译并运行val差夫的Call研磨工具,并使用kcache研磨检查结果呢?
两个体系结构之间的调用图应该是相同的,即使它们编译函数的方式略有不同,函数之间的关系也不应该改变。
不需要特别旗帜:
valgrind --tool=callgrind -v --dump-every-bb=10000000 ./some-app
kcachegrind &https://stackoverflow.com/questions/8330204
复制相似问题