【发布时间】:2016-03-30 15:16:01
【问题描述】:
我正在测试为瑞萨电子 RL78 微控制器编写的 C 软件。该软件仍在开发中,因此有些功能已实现但尚未调用。因此,链接器会消除此类函数,并在列表中输出以下条目:
CODE
Segment part 42. NOT NEEDED.
LOCAL ADDRESS
===== =======
function_name
我的目标是在目标系统上对这些函数执行单元测试,因此我需要将代码显示在输出 ELF 文件中。如何告诉链接器保留未使用的功能?我已经尝试将优化级别设置为 None,并将模块类型设置为 Program 或 Library。我还定义了一个名为CODE 的代码段。所有这些操作对链接器输出都没有预期的效果。
我不能修改源代码(从技术上讲,我可以修改我想要的所有东西,但我不能提交任何东西),所以从main() 调用我需要的所有函数不是一个选项。
【问题讨论】:
-
你打算如何对从未调用过的函数进行单元测试
-
@M.M 通过创建堆栈帧并将入口点地址放入程序计数器。
-
@M.M 我在我的回答中添加了一个屏幕截图,让您了解这是如何完成的。