GELF_GETSYMSHNDX(3) | FreeBSD Library Functions Manual | GELF_GETSYMSHNDX(3) |
名称
gelf_getsymshndx, gelf_update_symshndx — 拡張セクションインデックスを使用してシンボル情報を読み込んで、更新するライブラリ
ELF Access Library (libelf, -lelf)書式
#include < gelf.h> GElf_Sym *
gelf_getsymshndx( Elf_Data *symdata, Elf_Data *xndxdata, int ndx, GElf_Sym *sym, Elf32_Word *xndxptr);
int
gelf_update_symshndx( Elf_Data *symdata, Elf_Data *xndxdata, int ndx, GElf_Sym *sym, Elf32_Word xndx);
解説
これらの関数は、それぞれ gelf_getsym() と gelf_update_sym() に類似していますが、拡張セクション番号付けを使用してシンボルテーブルを操作することができます。引数 symdata は、タイプ SHT_SYMTAB のセクションに関連している Elf_Data 記述子です。引数 xndxdata は、タイプ SHT_SYMTAB_SHNDX のセクションに関連している Elf_Data 記述子です。引数 ndx は、検索されるか、または更新されるシンボルテーブルエントリのインデックスです。引数 sym は、クラスから独立している GElf_Sym 構造へのポインタです。 GElf_Sym 構造は、 gelf(3) で詳細に説明されています。
関数 gelf_getsymshndx() は、引数 symdata によって指定されたデータ記述子からインデックス ndx でシンボル情報を検索し、引数 sym のクラスから独立している形式に格納されます。さらに、データバッファ xndxdata からシンボルのための拡張セクションインデックスを検索して、それを引数 xndxptr によって指された位置に格納します。
関数 gelf_update_symshndx() は、引数 sym の情報でデータ記述子 symdata の基本的なシンボルテーブルエントリを更新します。さらに、データバッファ xndxdata の拡張セクションインデックスを引数 xndx の値に設定します。
戻り値
関数 gelf_getsymshndx() は、成功するなら、引数 sym の値を返し、エラーの場合は、NULL を返します。関数 gelf_update_symshndx() は、成功したなら、0 以外の値を返し、エラーの場合は 0 を返します。
エラー
これらの関数は、次のエラーで失敗するかもしれません:- [ ELF_E_ARGUMENT]
- 引数 symdata, xndxdata, xndxptr または sym が NULL でした。
- [ ELF_E_ARGUMENT]
- 引数 ndx は、0 未満、または記述子 symdata または xndxdata のどちらかに大き過ぎました。
- [ ELF_E_ARGUMENT]
- データ記述子 symdata は、タイプ SHT_SYMTAB のセクションに関連づけられませんでした。
- [ ELF_E_ARGUMENT]
- データ記述子 xndxdata は、タイプ SHT_SYMTAB_SHNDX のセクションに関連づけられませんでした。
- [ ELF_E_ARGUMENT]
- データ記述子 symdata と xndxdata は、異なった ELF オブジェクトに関連していました。
November 5, 2006 | FreeBSD |