1. 如何知道某个函数被是被谁调用的

Linux 内核:可通过dump_stack()分析

dump_stack()使用方法_yanlaifan的博客-CSDN博客_dump_stack

linux内核中打印栈回溯信息 - dump_stack()函数分析_落尘纷扰的博客-CSDN博客_dump_stack

应用程序:使用 __builtin_frame_address()、__builtin_return_address()分析

__builtin_return_address(LEVEL)函数解释和运行实战_小可爱amour的博客-CSDN博客___builtin_return_address

通过__builtin_return_address()获取函数地址后,再到到函数表中根据函数地址查找到对应的函数名即可,

gdb方式查找函数表( gdb 根据函数地址 找 对应的函数名 - 知乎gdb查看内存地址和栈中的值—查看虚函数表、函数地址_ztguang的博客-CSDN博客_gdb查看内存地址和栈中的值 )

(gdb) info symbol 0x9e250   //通过地址查找函数名

(gdb) info address func_name       //通过函数名查找地址

readelf 命令方式查看函数表