__builtin_return_address() を使用する __builtin_return_address() を利用することで、callerのアドレスを取得できる。 引数の数値を増やすことで、更に上の呼び出し元を参照できる。 #include <stdio.h> #define __USE_GNU #include <dlfcn.h> void hoge() { Dl_info info; dladdr(__builtin_return_address(0), &info); fprintf(stderr, "%s : __builtin_return_address => %p\n", __func__, __builtin_return_address(0)); fprintf(stderr, "%s : Dl_info.dli_fname => %s\n", __func_