IAR中C函数的别名

德米特里·格里戈里耶夫(Dmitry Grigoryev)

我需要一个符号作为此问题中描述alias的函数的别名,但对于IAR编译器/链接器而言。我已经尝试过GCC的答案,但是显然这些都不起作用:function

// source code
void alias(void) __attribute__ ((alias ("function")));
Error[Pe130]: expected a "{" C:\project\test.c 61

void alias(void) asm("function");
Error[Pe065]: expected a ";" C:\project\test.c 61

#pragma weak alias=function
Error[e46]: Undefined external "alias" referred in ?ABS_ENTRY_MOD (  ) 

// linker options:
-Dalias=function
Fatal Error[e163]: The command line symbol "function" in -Dalias=function is not defined. 

有谁知道如何在IAR / Xlink中定义函数别名?

一些背景知识:我负责在多个项目中使用的模块。为了对其进行测试,我为testIDEA工具开发了测试用例,该工具可以在某些断点处验证断言。然而,一些常见的功能在不同的项目,不同的名称(如初始化函数可以调用init()init_mcu()startup()等),所以每次我的模块集成在一个新的项目的时候,我要修改我的测试案例,以符合新的函数名。相反,我想test_init()为调用init函数定义一个通用别名(例如),以便我的测试用例始终可以使用该通用名称设置断点。我希望该符号可以将其放入ELF文件,调试器可以在该文件中看到它。

德米特里·格里戈里耶夫(Dmitry Grigoryev)

在仔细研究了xlink选项之后,我发现了一种可以满足我的需求的选项:

-e -enew = old [,old]…

使用-e在链接时通过将一个函数调用从一个函数重定向到另一个函数来配置程序。

这也可以用于创建存根函数。即,当系统尚未完成时,可以将未定义的函数调用定向到虚拟例程,直到编写了实函数为止。

我最终得到了这段代码:

void alias(void) {
// copy the body of function()
}

// Linker parameters
-ealias=function

这重定向到所有呼叫function()alias(),无论实际的名称function了。当然这是一个丑陋的破解,因为我必须复制代码,但是我得到了我想要的:我可以alias()按名称设置断点

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash脚本中的别名与函数

来自分类Dev

C中的严格别名

来自分类Dev

swift(iOS)中的类别名与函数

来自分类Dev

在PyYAML的构造函数中接受锚(别名)

来自分类Dev

参考别名作为函数中的变量

来自分类Dev

bash函数中的别名作用域

来自分类Dev

仅对函数中的参数使用别名

来自分类Dev

类方法和全局函数中的别名

来自分类Dev

别名中 bash 函数的语法问题

来自分类Dev

在别名中执行 bash 函数时的区别

来自分类Dev

在C#中输入别名

来自分类Dev

C ++ / Qt中变量的别名?

来自分类Dev

涉及“使用”别名的成员函数重载解析中的Intel C ++编译器错误?

来自分类Dev

如何在C中重命名/别名一个函数?

来自分类Dev

函数指针 IAR ( typedef void )

来自分类Dev

从f#中的函数引用/别名执行函数

来自分类Dev

C ++类型列表及其列表中的别名

来自分类Dev

C ++ 11中严格的别名规则

来自分类Dev

C ++类型列表及其列表中的别名

来自分类Dev

如果别名相同,如何在bash中调用函数?

来自分类Dev

在Python中为函数装饰器创建别名

来自分类Dev

如何在D模板中获取函数别名的名称?

来自分类Dev

在where子句中使用的select中的聚合函数别名

来自分类Dev

如何在F#中别名.NET函数

来自分类Dev

如何在模板类中为模板函数添加别名

来自分类Dev

强制为“别名”生成的函数中的参数顺序

来自分类Dev

PowerShell 7.1,如何从函数名称列表中获取别名

来自分类Dev

Bash:在脚本中输出所有别名和函数

来自分类Dev

在zsh中列出别名,函数和变量的名称