我以前使用 gcc -fdump-rtl-expand
和-finstrument-functions
进行函数调用跟踪, armcc 是否有这种类似的功能?
对于 gcc ,我使用:
CFLAGS += -finstrument-functions -fdump-rtl-expand
armcc 是否有类似的编译器选项?我尝试了相同的,但似乎它们不起作用:
$ armcc -finstrument-functions test.c
Fatal error: C3900U: Unrecognized option '-finstrument-functions'.
$ armcc -fdump-rtl-expand test.c
Fatal error: C3900U: Unrecognized option '-fdump-rtl-expand'.
答案 0 :(得分:1)
似乎允许使用gcc
armcc
样式工具的选项不同。
以下是 ARM编译器工具链:编译器参考的摘录(如果您在其网站上“注册”,则可以访问http://infocenter.arm.com的参考号):
--gnu_instrument, --no_gnu_instrument
此选项插入GCC样式的检测调用以进行性能分析 进入和退出职能。
<强>用法强>
在函数输入之后和函数退出之前,进行以下分析 使用当前函数的地址及其函数调用函数 致电网站:
void __cyg_profile_func_enter(void * current_func,void * callsite);
void __cyg_profile_func_exit(void * current_func,void * callsite);
<强>限制强>
您必须提供__cyg_profile_func_enter()和的定义 __cyg_profile_func_exit()。
有必要明确标记
__cyg_profile_func_enter()
和__cyg_profile_func_exit()
与__attribute__((no_instrument_function))
。另见
__attribute__((no_instrument_function))
函数属性。
关于-fdump-rtl-expand
选项:我不知道(并且不认为)armcc
在内部使用RTL。所以我不认为从 expand 传递获取日志在这里有任何意义。