Gcc 如何使用';armcc&x27;编译器跟踪函数调用?

Gcc 如何使用';armcc&x27;编译器跟踪函数调用?,gcc,arm,trace,armcc,Gcc,Arm,Trace,Armcc,我曾经使用gcc-fdump rtl expand和-finstrument函数进行函数调用跟踪,armcc是否有类似的函数 对于gcc,我使用: CFLAGS += -finstrument-functions -fdump-rtl-expand armcc是否有类似的编译器选项?我试过同样的,但似乎不起作用: $ armcc -finstrument-functions test.c Fatal error: C3900U: Unrecognized option '-finstrumen

我曾经使用gcc
-fdump rtl expand
-finstrument函数
进行函数调用跟踪,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'.

似乎允许使用
armcc
进行
gcc
式检测的选项有所不同

以下是ARM编译器工具链的摘录:编译器参考(如果您在他们的网站上“注册”,您可以在访问参考):

——gnu仪表,--无gnu仪表

此选项插入用于分析的GCC风格的检测调用 进入和退出功能

用法

在函数进入之后和函数退出之前,将执行以下分析 使用当前函数及其子函数的地址调用函数 呼叫地点:

void uu cyg u profile u func u enter(void*当前函数,void*调用站点)

void uu cyg u profile u func u exit(void*当前函数,void*调用站点)

限制

必须提供uu cyg_profile_func_enter()和 __cyg_profile_func_exit()

必须显式标记
\uuuuu cyg\u profile\u func\u enter()
\uuuucyg\u profile\u func\u exit()
带有
\uuuuu属性((无仪表功能))

另请参见

\uuuu属性(无仪器功能))
功能属性


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

似乎允许
gcc
风格的指令插入与
armcc
不同

以下是ARM编译器工具链的摘录:编译器参考(如果您在他们的网站上“注册”,您可以在访问参考):

——gnu仪表,--无gnu仪表

此选项插入用于分析的GCC风格的检测调用 进入和退出功能

用法

在函数进入之后和函数退出之前,将执行以下分析 使用当前函数及其子函数的地址调用函数 呼叫地点:

void uu cyg u profile u func u enter(void*当前函数,void*调用站点)

void uu cyg u profile u func u exit(void*当前函数,void*调用站点)

限制

必须提供uu cyg_profile_func_enter()和 __cyg_profile_func_exit()

必须显式标记
\uuuuu cyg\u profile\u func\u enter()
\uuuucyg\u profile\u func\u exit()
带有
\uuuuu属性((无仪表功能))

另请参见

\uuuu属性(无仪器功能))
功能属性


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

是的,我尝试过,没有这两个选项,我尝试过,没有这两个选项。谢谢您的帮助,我认为仪器可能用于动态跟踪函数调用,我使用gcc的
-fdump rtl expand
进行静态跟踪,ARM有类似于fdump的功能吗?我不知道。你可以在手册里找一本。我很好奇:你为什么更喜欢armcc而不是gcc呢?公司决策…:(无论如何,谢谢你的帮助,顺便说一句,你介意为我提供一个
arm linux gcc
工具链下载链接吗?有crosstool ng可以帮助你自己构建一个工具链,还有CodeSource/MentorGraphics的预建arm工具链。可能还有很多其他工具。谢谢你的帮助,我认为该工具可以用于动态跟踪f函数调用,我使用gcc的
-fdump rtl expand
来做静态跟踪,ARM有类似于
fdump
的函数吗?我不知道。你可以在手册中查找一个。我很好奇:你为什么喜欢
armcc
而不是
gcc
来做ARM的静态跟踪?公司决策…:(无论如何,谢谢你的帮助,顺便说一句,你介意为我提供一个
arm linux gcc
工具链下载链接吗?有crosstool ng可以帮助你自己构建一个工具链,还有CodeSource/MentorGraphics的预建arm工具链。可能还有很多其他工具链。