1

我以前用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'.
4

1 回答 1

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()with __attribute__((no_instrument_function))

也可以看看

__attribute__((no_instrument_function))功能属性。

至于-fdump-rtl-expand选项:我不知道(也不认为)在armcc内部使用 RTL。所以我认为从扩展通道获取日志在这里没有任何意义。

于 2012-09-24T09:49:58.133 回答