ふとvdsoで提供されている関数の一覧が見たくなったので。
masami@saga:~$ gcc read_vdso.c -o read_vdso masami@saga:~$ ./read_vdso [*]read 2 pages [*]vdso start address is 0x7ffd532fb000 [*]write data [*]Done. masami@saga:~$ file vdso_dump.so vdso_dump.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=dbcfbfba9068a599aa0b0964ac2ab58244ce7cb4, stripped masami@saga:~$ readelf -s vdso_dump.so Symbol table '.dynsym' contains 10 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND 1: 0000000000000a20 773 FUNC WEAK DEFAULT 12 clock_gettime@@LINUX_2.6 2: 0000000000000d30 449 FUNC GLOBAL DEFAULT 12 __vdso_gettimeofday@@LINUX_2.6 3: 0000000000000d30 449 FUNC WEAK DEFAULT 12 gettimeofday@@LINUX_2.6 4: 0000000000000f00 21 FUNC GLOBAL DEFAULT 12 __vdso_time@@LINUX_2.6 5: 0000000000000f00 21 FUNC WEAK DEFAULT 12 time@@LINUX_2.6 6: 0000000000000a20 773 FUNC GLOBAL DEFAULT 12 __vdso_clock_gettime@@LINUX_2.6 7: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS LINUX_2.6 8: 0000000000000f20 42 FUNC GLOBAL DEFAULT 12 __vdso_getcpu@@LINUX_2.6 9: 0000000000000f20 42 FUNC WEAK DEFAULT 12 getcpu@@LINUX_2.6
vdsoの開始アドレスはgetauxval(3)にAT_SYSINFO_EHDRを渡すと取得できる。
リンカ・ローダ実践開発テクニック―実行ファイルを作成するために必須の技術 (COMPUTER TECHNOLOGY)
- 作者: 坂井弘亮
- 出版社/メーカー: CQ出版
- 発売日: 2010/08/01
- メディア: 単行本
- 購入: 6人 クリック: 55回
- この商品を含むブログ (16件) を見る