Вы можете позвонить с помощью __builtin_return_address(0)
.
Вызывающий абонент __builtin_return_address(1)
и т. Д.
Это расширение GCC, описанное в руководстве по gcc: http://gcc.gnu.org/onlinedocs/gcc/Return-Address.html
Редактировать: Я, вероятно, должен указать, что вы получите адрес звонящего. Если вам нужно имя функции, вы можете напечатать его с помощью %pS
, например:
printk("Caller is %pS\n", __builtin_return_address(0));
Если вы не хотите его печатать, вы можете использовать kallsyms_lookup()
и т. Д.