将调用哪个函数?
cscope的:
[1] include/linux/sched.h
Cscope tag: show_regs
1 108 /data/linux-3.4.7/arch/x86/kernel/process.c <<show_regs>>
void show_regs(struct pt_regs *regs)
2 14 /data/linux-3.4.7/arch/x86/um/sysrq_32.c <<show_regs>>
void show_regs(struct pt_regs *regs)
3 37 /data/linux-3.4.7/arch/x86/um/sysrq_64.c <<show_regs>>
void show_regs(struct pt_regs *regs)
gcc如何知道将链接哪个功能?
答案 0 :(得分:1)
在共享库中,对作为全局符号的函数的调用需要对所谓的PLT(过程链接表)中的代码位置进行“调用”指令,其中包含对实际函数的“跳转”指令。代码。
当语言允许使用相同的标识符命名不同的实体时,只要它们占用不同的命名空间(其中命名空间通常由模块,类或显式命名空间指令定义),通过名称的概念来解决冲突截断。
名称修改提供了一种在函数,结构,类或其他数据类型的名称中编码附加信息的方法,以便将更多语义信息从编译器传递给链接器。
SRC:Wiki,gnu.org