z80oolong @z80oolong@qiitadon.com
フォロー

ここに、 Dlinfo 構造体は、動的ライブラリ内の関数の逆引き情報を格納する構造体であり、 dli_sname メンバに関数名が格納されます。詳細については、[dlclose, dlerror, dlopen, dlsym のマニュアルページ][1]を御覧下さい。

そして、 dladdr(3) 関数に関数のポインタを示す引数 addrDlinfo 構造体へのポインタ info を渡して呼び出した結果、値 0 が返却されるか、 info.dli_sname に関数名の文字列以外が格納されていれば、関数のポインタは正しくない物であることが判ります。

即ち、 glibc を使用する場合において動的ライブラリ内の関数のポインタが正しいがどうかを確認するには、 dlerror(3) 関数の返り値を判定する手法と上記の手法が必要であることが判ります。

[1]:linuxjm.osdn.jp/html/LDP_man-p

· Web · 0 · 0