首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用'armcc‘编译器跟踪函数调用?

如何使用'armcc‘编译器跟踪函数调用?
EN

Stack Overflow用户
提问于 2012-09-24 08:55:14
回答 1查看 2.1K关注 0票数 1

我以前用gcc -fdump-rtl-expand-finstrument-functions做函数调用跟踪,armcc有类似的功能吗?

对于gcc,我使用:

代码语言:javascript
复制
CFLAGS += -finstrument-functions -fdump-rtl-expand

armcc有类似的编译器选项吗?我试过同样的方法,但它们似乎不起作用:

代码语言:javascript
复制
$ 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'.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 09:49:58

似乎允许使用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。因此,我认为从扩展pass中获取日志没有任何意义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12561709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档