英語版
このページの英語版を見る
core.sys.darwin.mach.nlist
の記号と定義に対するバインディングは、次のとおりである。 mach-o/
nlist
.h
このファイルはMacOSX 10.15 SDKに基づいて作成された。
License:
Authors:
Mathias 'Geod24' Lang
- struct
nlist_64
; - 64ビットアーキテクチャ用シンボルリストのエントリこのシンボルは、さまざまなタイプのデータを記述するために使用できる、 STABSデバッグ情報を含む。MacOSX 10.8 SDKで導入された。
- alias
n_un
= n_strx; - n_strx 、Cコードでは "共用体"であるため、互換性のあるエイリアス。
- uint
n_strx
; - 文字列テーブルへのこのシンボルの名前のインデックスすべての名前は、NUL終端の文字列として文字列テーブルに格納される。 歴史的な理由から、文字列テーブルの最初のエントリーは0 である、 したがって、NULLでない名前はすべてインデックス > 0を持つ。
- ubyte
n_type
; - このシンボルの型を表すビットフィールドは、以下のとおりである。実際には、これは4つのフィールドを記述する:
- N_STAB (上位3ビット)
- N_PEXT(次の1ビット)
- N_TYPE(次の3ビット)
- N_EXT(最後の1ビット)
- ubyte
n_sect
; - セクション番号(0 はNO_SECT を意味することに注意)。
N_STAB
- これらのビットのいずれかがセットされている場合、シンボリック・デバッグ・エントリーシンボリックデバッグエントリだけがN_STABビットのいくつかが設定されている。 これらのビットのどれかがセットされていれば、それはシンボリックデバッグエントリ(スタブ)である。 この場合 この場合、n_typeフィールドの値(フィールド全体)は<mach-o/stab>で与えられる。 <mach-o/stab.h>で与えられる。
N_PEXT
- プライベート外部シンボルビット
N_TYPE
- 型ビットのマスク。
N_EXT
- 外部シンボルビット、外部シンボルに対して設定される
N_UNDF
- 未定義 (n_sect == NO_SECT)
N_ABS
- 絶対値 (n_sect == NO_SECT)
N_SECT
- セクション番号で定義されているnlist_64.n_sect
N_PBUD
- プリバウンド未定義(dylibで定義されている)
N_INDR
- 間接記号もし型が
N_INDR
である場合、そのシンボルは 別のシンボルと同じであると定義されている。この場合、n_value フィールドは、他のシンボルの名前の文字列テーブルへのインデックスとなる。 へのインデックスである。他のシンボル が定義されると、両者は定義された型と値を取る。 - enum int
NO_SECT
; - シンボルがどのセクションにもない型がN_SECTの場合、n_sectフィールドにはシンボルが定義されているセクションの序数が格納される。 セクションの序数が入る。 セクションは1から順に番号付けされる。 セクションは1から順に番号付けされ、そのセクションが含まれるファイルのロードコマンドに現れる順にセクションを参照する。 セクションを指す。 つまり、同じ序数が異なるファイルの異なるセクションを参照する可能性がある。 セクションを指す。 すべてのシンボルテーブル・エントリ(N_STABを含む)のn_valueフィールドは、そのn_sectフィールドの値に基づいてリンクエディターによって更新される。 (N_STABを含む)すべてのシンボルテーブルエントリーのn_valueフィールドは、そのn_sectフィールドの値に基づいてリンクエディターによって更新される。 を参照するセクションが再配置される。 n_sectフィールドの値がNO_SECTの場合、リンクエディターによって更新される。 フィールドの値がNO_SECTの場合、n_valueフィールドはリンクエディターによって変更されない。
- enum int
MAX_SECT
; - セクションの最大数:1から255まで
- pure nothrow @nogc @safe ubyte
GET_COMM_ALIGN
(uintn_desc
);
pure nothrow @nogc ref @safe ushortSET_COMM_ALIGN
(return ref ushortn_desc
, size_twanted_align
); - 共通シンボルは未定義(N_UNDF)外部型(N_EXT)で表される。 値(n_value)が0でない。 この場合、n_valueフィールドの値は(バイト単位の)サイズとなる。 フィールドの値は、共通シンボルのサイズ(バイト数)である。 n_sectフィールドは には NO_SECT が設定される。 共通シンボルのアラインメントは2のべき乗で設定できる。 以下のマクロを使用して、n_desc フィールドの一部として 2^1 から 2^15 の間で 2 のべき乗として設定することができる。もし アライメントが設定されていない場合(値0)、サイズに基づく自然なアライメントが使用される。 に基づくナチュラルアライメントが使用される。
REFERENCE_TYPE
- 未定義シンボルのn_descフィールドの参照型ビット
REFERENCE_FLAG_UNDEFINED_NON_LAZY
REFERENCE_FLAG_UNDEFINED_LAZY
REFERENCE_FLAG_DEFINED
REFERENCE_FLAG_PRIVATE_DEFINED
REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY
REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY
- 参照の型
REFERENCED_DYNAMICALLY
- ダイナミック・リンク・エディターで使用されるオブジェクトのストリッピングを簡単にするため 静的リンクエディターは、動的リンクエディターで使用されるオブジェクトの削除を簡単にするために、動的リンクエディターで参照されるオブジェクトを定義したシンボルをマークする。 動的バインド・オブジェクト(動的共有ライブラリ、バンドル)によって参照されるオブジェクトを定義したシンボルをマークする。 このマークによって、ストリップはこれらのシンボルをストリップしないことがわかる。
- pure nothrow @nogc @safe ubyte
GET_LIBRARY_ORDINAL
(uintn_desc
);
pure nothrow @nogc ref @safe ushortSET_LIBRARY_ORDINAL
(return ref ushortn_desc
, uintordinal
); - twolevel_namespaceオプションが有効なスタティックリンクエディターで作成されたイメージでは、-twolevel_namespaceオプションが有効である。 オプションを有効にしてスタティックリンクエディタで作成されたイメージでは、 machヘッダのflagsフィールドに MH_TWOLEVELでマークされる。 そして、イメージの未定義参照のバインディングは、スタティックリンクエディターによって決定される。 スタティックリンクエディターによって決定される。 未定義シンボルがどのライブラリにバインドされているかは フィールドの上位8ビットに記録される。 フィールドの上位8ビットに記録される。 記録される序数 は、Mach-O の LC_LOAD_DYLIB にリストされたライブラリを参照する、 LC_LOAD_WEAK_DYLIB、LC_REXPORT_DYLIB、LC_LOAD_UPWARD_DYLIB、そして LC_LAZY_LOAD_DYLIBなどである。 ヘッダーに現れる順序でコマンドをロードする。 ライブラリの序数は1から始まる。 2レベルの名前空間イメージとして構築されたダイナミック・ライブラリの場合 別のモジュールで定義された未定義参照は、同じnlist構造体を使用する。 を使用する。この場合、SELF_LIBRARY_ORDINALがライブラリ序数として使用される。 すべてのイメージで すべてのイメージで定義されたシンボルについても、ライブラリ序数を self_library_ordinalに設定されなければならない。 EXECUTABLE_ORDINALは、実行イメージを参照する。 イメージを参照する。 を参照する。DYNAMIC_LOOKUP_ORDINALは、2レベル名前空間の未定義シンボル用である。 ダイナミック・リンカがフラットな名前空間セマンティクスでルックアップする。 この序数は、Mac OS X 10.3の機能として追加された。 MAX_LIBRARY_ORDINALの値を1減らすことによって追加された。 そのため、既存のバイナリ または古いツールでビルドされたバイナリが0xfe (254)のダイナミック・ライブラリを持つことは合法である。 この場合 この場合、序列値0xfe (254)は互換性のためにライブラリ序列として扱われなければならない。 として扱わなければならない。
N_NO_DEAD_STRIP
- シンボルはデッドストリップされないn_descフィールドのN_NO_DEAD_STRIPビットは、リロケータブルな.oファイル(MH_OBJECTファイルタイプ)にのみ現れる。 リロケータブル.oファイル(MH_OBJECTファイルタイプ)にのみ現れる。そして スタティックリンクエディターがシンボルをデッドストリップしないことを示すために使用される。
N_DESC_DISCARDED
- シンボルは破棄されるn_descフィールドのN_DESC_DISCARDEDビットはリンクされたイメージには現れない。 しかし、ダイナミック・リンク・エディターがごくまれに使用する。 を破棄されたシンボルとしてマークし、リンクに使用されなくなる。
N_WEAK_REF
- シンボルは弱い参照であるn_descフィールドのN_WEAK_REFビットは、ダイナミックリンカーに次のことを示す。 未定義シンボルは欠落してもよく、欠落時のアドレスはゼロである。 のアドレスを持つ。
N_WEAK_DEF
- 合体シンボルは弱い定義であるn_descフィールドのN_WEAK_DEFビットは、静的リンカーと動的リンカーに、シンボルの定義が弱いことを示す。 リンカに対して、シンボル定義が弱いことを示す。 を使用することができる。 現在のところ、これは がサポートされているのは、合体セクションのシンボルのみである。
N_REF_TO_WEAK
- 弱いシンボルへの参照n_descフィールドのN_REF_TO_WEAKビットは、ダイナミック・リンカーに、未定義シンボルがフラット名前空間検索を使って解決されるべきであることを示す。 に対して、未定義のシンボルはフラット名前空間検索を使って解決すべきであることを示す。
N_ARM_THUMB_DEF
- シンボルが Thumb 関数である(ARM)。n_descフィールドのN_ARM_THUMB_DEFビットは、シンボルが親指関数の定義であることを示す。 であることを示す。
N_SYMBOL_RESOLVER
- n_descフィールドのN_SYMBOL_RESOLVERビットは、そのシンボルが実際にはリゾルバであることを示す。 n_descフィールドのN_SYMBOL_RESOLVERビットは、その関数が実際にはリゾルバ関数であり、 Thumb関数のアドレスを取得するために呼び出されるべきであることを示す。 を呼び出す必要があることを示す。 このビットは.oファイル(MH_OBJECTファイルタイプ)でのみ使用可能である。
N_ALT_ENTRY
- n_descフィールドのN_ALT_ENTRYビットは、シンボルが前のコンテンツに固定されていることを示す。 シンボルが前のコンテンツに固定されていることを示す。
N_COLD_FUNC
- n_descフィールドのN_COLD_FUNCビットは、そのシンボルの使用頻度が低いことを示す。 リンカはそのシンボルをセクションの末尾に置くべきである。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku