共有ライブラリの名前とロードされたアドレスを取得する (実行時 ldd 相当)
ldd と違ってどのアドレスにロードされているかの情報も欲しい。 Linux だと /proc/self/maps に書いてある情報。
- Linux では dl_iterate_phdr でにコールバック関数を渡してやる。
- FreeBSD では dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lmap) などとして link_map という構造体をゲットすればいい。
- MacOSX では dyld(3) 。 _dyld_image_count と _dyld_get_image_name と _dyld_get_image_vmaddr_slide を使えばいい。
- Win32 では今のところどうすればいいやら。
- NetBSD では見当らない。 dlctl(3) というのが今作ってるところだ、って man に書いてあって、ヘッダを見ると DL_GETLIST なんてのがあるので、これでできるかもしれない。
ところで dlinfo が man に無いのはヒドい話だと思う。