日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
STAB(5) FreeBSD ファイルフォーマットマニュアル STAB(5) 名称 stab -- シンボルテーブルのタイプ 書式 #include <stab.h> 解説 ファイル <stab.h> は、a.out ファイルのためのシンボルテーブル n_type フィールド値のうちのいくつかを定義します。これらは、古いデバッガ sdb と Berkeley Pascal コンパイラ pc(1) によって使用される永久的なシンボル (すな わち、ローカルなラベルなどではない) のためのタイプです。シンボルテーブル のエントリは、.stabs アセンブラディレクティブによって生成することができま す。これによって、ダブルクォートで区切られた名前、シンボルのタイプ、シン ボルに関する情報の 1 つの char と 1 つの short と、unsigned long (通常ア ドレス) を指定することができます。アドレスフィールドのための明示的なラベ ルを生成することを避けるために、現在の位置を暗黙に対処する .stabd ディレ クティブを使用することができます。名前が必要ではないなら、.stabn ディレク ティブを使用して、シンボルテーブルのエントリを生成することができます。 ローダは、.stab ディレクティブによって生成されたシンボルテーブルのエント リの順序を保つことを保証します。a.out(5) に記述されているように、シンボル テーブルの要素は、次の構造体から成ります: /* * シンボルテーブルのエントリの形式 */ struct nlist { union { const char *n_name; /* コア内の時の使用のため */ long n_strx; /* ファイル文字列テーブルへの インデックス */ } n_un; unsigned char n_type; /* タイプフラグ */ char n_other; /* 未使用 */ short n_desc; /* 下記の struct desc 参照 */ unsigned n_value; /* アドレスまたはオフセットまたは 行 */ }; n_type フィールドの下位ビットは、<a.out.h> に定義される、次のマスクにした がって、シンボルを多くても 1 つのセグメントに置くために使用されます。シン ボルは、これらのセグメントのビットの設定をなしにすることによって、これら のセグメントのいずれでもないようにできます。 /* * n_type のための簡単な値 */ #define N_UNDF 0x0 /* 未定義 */ #define N_ABS 0x2 /* 絶対的 */ #define N_TEXT 0x4 /* テキスト */ #define N_DATA 0x6 /* データ */ #define N_BSS 0x8 /* bss */ #define N_EXT 01 /* 外部ビット, 論理和される */ シンボルの n_value フィールドは、適切なセグメント内のアドレスとして、リン カ ld(1) によってリロケーションされます。あらゆるセグメントにないシンボル の n_value フィールドは、リンカによって変更されません。さらに、リンカは、 n_type フィールドが次のビットの設定の 1 つがないなら、それ自体の規則にし たがって、特定のシンボルを破棄します: /* * 他の永続的なシンボルテーブルのエントリには, N_STAB ビットセットの * いくつかがあります. これらは, <stab.h> で与えられます. */ #define N_STAB 0xe0 /* これらのビットのいずれかが設定されているなら, 破棄されません */ これは、さまざまなセグメントの間で分割される、112 (7 * 16) 個までのシンボ ルのタイプに許可します。これらのいくつかは、既に要求されています。古いシ ンボリックなデバッガ sdb は、次の n_type 値を使用します: #define N_GSYM 0x20 /* グローバルシンボル : name,,0,type,0 */ #define N_FNAME 0x22 /* 手続き名 (f77 kludge): name,,0 */ #define N_FUN 0x24 /* 手続き: name,,0,linenumber,address */ #define N_STSYM 0x26 /* 静的シンボル: name,,0,type,address */ #define N_LCSYM 0x28 /* .lcomm シンボルl: name,,0,type,address */ #define N_RSYM 0x40 /* レジスタシンボル: name,,0,type,register */ #define N_SLINE 0x44 /* ソース行: 0,,0,linenumber,address */ #define N_SSYM 0x60 /* 構造体の要素: name,,0,type,struct_offset */ #define N_SO 0x64 /* ソースファイル名: name,,0,0,address */ #define N_LSYM 0x80 /* ローカルシンボル: name,,0,type,offset */ #define N_SOL 0x84 /* #include ファイル名: name,,0,0,address */ #define N_PSYM 0xa0 /* パラメータ: name,,0,type,offset */ #define N_ENTRY 0xa4 /* 代替エントリ: name,linenumber,address */ #define N_LBRAC 0xc0 /* 左角括弧: 0,,0,nesting level,address */ #define N_RBRAC 0xe0 /* 右角括弧: 0,,0,nesting level,address */ #define N_BCOMM 0xe2 /* common の開始: name,, */ #define N_ECOMM 0xe4 /* common の終了: name,, */ #define N_ECOML 0xe8 /* common の終了 (ローカル名): ,,address */ #define N_LENG 0xfe /* 長さ情報がある 2 番目の stab エントリ */ ここで、コメントは、.stab s のための sdb の従来型の使用と与えられた n_type の n_name, n_other, n_desc と n_value フィールドを与えます。sdb は、ポータブル C コンパイラ cc(1) によって使用される形式のタイプ指定子を 保持するために n_desc フィールドを使用します。これらのタイプ値の形式に関 する詳細については、ヘッダファイル pcc.h を参照してください。 Berkeley Pascal コンパイラ pc(1) は、次の n_type 値を使用します: #define N_PC 0x30 /* グローバル pascal シンボル: name,,0,subtype,line */ そして、別々にコンパイルされたファイルに渡ってタイプチェックを行うため に、次のサブタイプを使用します: 1 ソースファイル名 2 インクルードされたファイル名 3 グローバルラベル 4 グローバル定数 5 グローバルタイプ 6 グローバル変数 7 グローバル関数 8 グローバル手続き 9 外部関数 10 外部手続き 11 ライブラリ変数 12 ライブラリルーチン 関連項目 as(1), ld(1), a.out(5) 歴史 stab ファイルは、4.0BSD で登場しました。 バグ より基本的なタイプが必要とされます。 FreeBSD 11.2 June 10, 2010 FreeBSD 11.2