タイトルおよびコピーライト情報 |
まえがき |
本書の対象読者 |
追加および変更された機能 |
本書の構成 |
関連資料 |
本書で使用する表記法 |
1 | 概要 |
1.1 | アプリケーション開発のフェーズ |
1.2 | 仕様および設計上の留意事項 |
1.2.1 | 規格 |
1.2.2 | 国際化 |
1.2.3 | ウィンドウ・アプリケーション |
1.2.4 | アプリケーションの保護 |
1.3 | ソフトウェア開発の主なツール |
1.3.1 | Tru64 UNIX 環境でサポートされる言語 |
1.3.2 | オブジェクト・ファイルのリンク |
1.3.3 | デバッグおよびプログラム分析ツール |
1.4 | ソース・ファイル制御 |
1.5 | プログラムのインストール・ツール |
1.6 | プロセス間通信機能の概要 |
2 | コンパイラ・システム |
2.1 | コンパイラ・システムの構成要素 |
2.2 | Tru64 UNIX 環境におけるデータ型 |
2.2.1 | データ型のサイズ |
2.2.2 | 浮動小数点の範囲と処理 |
2.2.3 | 構造体の位置合わせ |
2.2.4 | ビット・フィールドの位置合わせ |
2.2.5 | _ _align 記憶クラス修飾子 |
2.3 | C プリプロセッサ |
2.3.1 | 定義済みマクロ |
2.3.2 | ヘッダ・ファイル |
2.3.3 | 各国語対応インクルード・ファイルの設定 |
2.3.4 | 処理系固有のプリプロセッサ指示文 (#pragma) |
2.4 | ソース・プログラムのコンパイル |
2.4.1 | 省略時のコンパイル動作 |
2.4.2 | 多言語プログラムのコンパイル |
2.4.3 | 配列境界の実行時検査の有効化 |
2.5 | オブジェクト・ファイルのリンク |
2.5.1 | コンパイラ・コマンドによるリンク |
2.5.2 | ld コマンドによるリンク |
2.5.3 | ライブラリの指定 |
2.5.4 | リンカ出力ファイルでのリンク・エラー問題の回避 |
2.6 | プログラムの実行 |
2.7 | オブジェクト・ファイルのツール |
2.7.1 | ファイル内の選択した部分のダンプ (odump) |
2.7.2 | シンボル・テーブル情報の表示 (nm) |
2.7.3 | ファイル・タイプの決定 (file) |
2.7.4 | ファイルのセグメント・サイズの決定 (size) |
2.7.5 | オブジェクト・ファイルの逆アセンブル (dis) |
2.8 | 標準 C ライブラリにおける ANSI 名前空間汚染のクリーンアップ |
2.9 | インライン・アセンブリ・コード -- ASM |
3 | プラグマ・プリプロセッサ指示文 |
3.1 | #pragma assert 指示文 |
3.1.1 | #pragma assert func_attrs |
3.1.2 | #pragma assert global_status_variable |
3.1.3 | #pragma assert non_zero |
3.2 | #pragma environment 指示文 |
3.3 | #pragma extern_model 指示文 |
3.3.1 | 構文 |
3.3.2 | #pragma extern_model relaxed_refdef |
3.3.3 | #pragma extern_model strict_refdef |
3.3.4 | #pragma extern_model save |
3.3.5 | #pragma extern_model restore |
3.4 | #pragma extern_prefix 指示文 |
3.5 | #pragma inline 指示文 |
3.6 | #pragma intrinsic および #pragma function 指示文 |
3.7 | #pragma linkage 指示文 |
3.8 | #pragma member_alignment 指示文 |
3.9 | #pragma message 指示文 |
3.9.1 | #pragma message option1 |
3.9.2 | #pragma message option2 |
3.9.3 | #pragma message ("string") |
3.10 | #pragma optimize 指示文 |
3.11 | #pragma pack 指示文 |
3.12 | #pragma pointer_size 指示文 |
3.13 | #pragma unroll 指示文 |
3.14 | #pragma use_linkage 指示文 |
3.15 | #pragma weak 指示文 |
4 | シェアード・ライブラリ |
4.1 | シェアード・ライブラリの概要 |
4.2 | シンボルの解決 |
4.2.1 | リンカの探索パス |
4.2.2 | 実行時ローダの探索パス |
4.2.3 | 名前の解決 |
4.2.4 | 未解決の外部シンボルの処理のオプション |
4.3 | シェアード・ライブラリとのリンク |
4.4 | シェアード・ライブラリの指定解除 |
4.5 | シェアード・ライブラリの作成 |
4.5.1 | オブジェクト・ファイルからのシェアード・ライブラリの作成 |
4.5.2 | アーカイブ・ライブラリからのシェアード・ライブラリの作成 |
4.6 | プライベートなシェアード・ライブラリの使用 |
4.7 | クイックスタートの使用 |
4.7.1 | オブジェクトのクイックスタートの確認 |
4.7.2 | 手動によるクイックスタート問題の解決 |
4.7.3 | fixso ユーティリティによるクイックスタート問題の解決 |
4.8 | シェアード・ライブラリとリンクしているプログラムのデバッグ |
4.9 | シェアード・ライブラリの実行時のロード |
4.10 | シェアード・ライブラリ・ファイルの保護 |
4.11 | シェアード・ライブラリのバージョン管理 |
4.11.1 | バイナリ非互換修正 |
4.11.2 | シェアード・ライブラリのバージョン管理 |
4.11.3 | メジャーおよびマイナー・バージョン識別子 |
4.11.4 | シェアード・ライブラリの完全バージョンと部分バージョン |
4.11.5 | シェアード・ライブラリの複数バージョンとのリンク |
4.11.6 | ロード時におけるバージョン・チェック |
4.11.7 | ロード時における複数バージョンのチェック |
4.12 | シンボル割り当て |
4.13 | シェアード・ライブラリの制約事項 |
5 | dbx によるプログラムのデバッグ |
5.1 | デバッグの一般的な留意事項 |
5.1.1 | ソース・レベルのデバッガを使用する理由 |
5.1.2 | アクティブ化レベル |
5.1.3 | プログラム実行障害箇所の特定 |
5.1.4 | 不正の出力結果の原因分析 |
5.1.5 | 実行プロセスのコア・スナップショットの作成 |
5.1.6 | 障害の回避 |
5.2 | dbx の実行 |
5.2.1 | デバッグ用プログラムのコンパイル |
5.2.2 | dbx 初期化ファイルの作成 |
5.2.3 | dbx の起動と終了 |
5.3 | dbx コマンドの使用方法 |
5.3.1 | 変数名の修飾 |
5.3.2 | dbx 式と式の優先順位 |
5.3.3 | dbx のデータ型および定数 |
5.4 | dbx モニタによる作業 |
5.4.1 | dbx コマンドの繰り返し |
5.4.2 | dbx コマンド行の編集 |
5.4.3 | 複数のコマンドの入力 |
5.4.4 | シンボル名の補完 |
5.5 | dbx の制御 |
5.5.1 | 変数の設定および削除 |
5.5.2 | 定義済みの dbx 変数 |
5.5.3 | 別名の定義および削除 |
5.5.4 | デバッグ・セッション状態の監視 |
5.5.5 | ブレークポイントの削除あるいは無効化 |
5.5.6 | ロードされたオブジェクト・ファイル名の表示 |
5.5.7 | コア・ダンプ用のシェアード・ライブラリの指定 |
5.5.8 | dbx からのサブシェルの起動 |
5.6 | ソース・プログラムの検査 |
5.6.1 | ソース・ファイルのディレクトリ位置の指定 |
5.6.2 | アクティブ化スタックでの移動 |
5.6.2.1 | where コマンドおよび tstack コマンド |
5.6.2.2 | up コマンド,down コマンド,func コマンド |
5.6.3 | 現在のソース・ファイルの変更 |
5.6.4 | ソース・コードのリスト |
5.6.5 | ソース・ファイル・テキストの探索 |
5.6.6 | dbx 内からのソース・ファイルの編集 |
5.6.7 | 同じ名前の変数の識別 |
5.6.8 | 変数およびプロシージャのタイプの確認 |
5.7 | プログラムの制御 |
5.7.1 | プログラムの実行および再実行 |
5.7.2 | step コマンドによるプログラムの実行 |
5.7.3 | return コマンド |
5.7.4 | コード内の特定の場所への移動 |
5.7.5 | ブレークポイント後のプログラム実行の再開 |
5.7.6 | プログラム変数値の変更 |
5.7.7 | 実行可能なディスク・ファイルのパッチ |
5.7.8 | 特定のプロシージャの実行 |
5.7.9 | 環境変数の設定 |
5.8 | ブレークポイントの設定 |
5.8.1 | 概要 |
5.8.2 | stop および stopi によるブレークポイントの設定 |
5.8.3 | 実行中の変数のトレース |
5.8.4 | dbx での条件コードの記述 |
5.8.5 | シグナルの受信および無視 |
5.9 | プログラム状態の検査 |
5.9.1 | 変数および式の値の出力 |
5.9.2 | dump コマンドによるアクティブ化レベル情報の表示 |
5.9.3 | メモリの内容の表示 |
5.9.4 | dbx セッションの入出力の記録および再生 |
5.9.4.1 | デバッガ入力の記録および再実行 |
5.9.4.2 | デバッガ出力の記録および再実行 |
5.10 | コア・ダンプ・ファイルのネーミング |
5.10.1 | システム・レベルでのコア・ファイルのネーミング機能の有効化 |
5.10.2 | アプリケーション・レベルでのコア・ファイルのネーミング機能の有効化 |
5.11 | 実行中のプロセスのデバッグ |
5.12 | マルチスレッド・アプリケーションのデバッグ |
5.13 | 複数の非同期プロセスのデバッグ |
5.14 | サンプル・プログラム |
6 | lint による C プログラムの検査 |
6.1 | lint コマンドの構文 |
6.2 | プログラム・フロー検査 |
6.3 | データ型検査 |
6.3.1 | 二項演算子および暗黙の代入 |
6.3.2 | 構造体と共用体 |
6.3.3 | 関数定義と使用方法 |
6.3.4 | 列挙値 |
6.3.5 | 型キャスト |
6.4 | 変数および関数の検査 |
6.4.1 | 矛盾する値を返す関数 |
6.4.2 | 使用されていない関数値 |
6.4.3 | 関数についての検査の禁止 |
6.5 | 初期化前の変数使用のチェック |
6.6 | 移行検査 |
6.7 | 移植性検査 |
6.7.1 | 文字 |
6.7.2 | ビット・フィールド |
6.7.3 | 外部名サイズ |
6.7.4 | 複雑な式の使用と副作用 |
6.8 | コーディング・エラーおよびコーディングのスタイルの相違のチェック |
6.8.1 | long 型変数の int 型変数への代入 |
6.8.2 | 演算子の優先度 |
6.8.3 | 宣言の矛盾 |
6.9 | テーブル・サイズの増加 |
6.10 | lint ライブラリの作成 |
6.10.1 | 入力ファイルの作成 |
6.10.2 | lint ライブラリ・ファイルの作成 |
6.10.3 | 新しいライブラリによるプログラムの検査 |
6.11 | lint エラー・メッセージ |
6.12 | 警告クラス・オプションを使用した lint メッセージの抑制 |
6.13 | コンパイル時に検出される構文エラーのための関数プロトタイプの生成 |
7 | Third Degree によるプログラムのデバッグ |
7.1 | アプリケーションにおける Third Degree の実行 |
7.1.1 | シェアード・ライブラリでの Third Degree の使用 |
7.2 | デバッグ例 |
7.2.1 | Third Degree のカスタマイズ |
7.2.2 | Makefile の変更 |
7.2.3 | Third Degree のログ・ファイルの検査 |
7.2.3.1 | 実行時メモリ・アクセス・エラーのリスト |
7.2.3.2 | メモリ・リーク |
7.2.3.3 | ヒープ・ヒストリ |
7.2.3.4 | メモリ・レイアウト |
7.3 | Third Degree エラー・メッセージの解釈 |
7.3.1 | エラーの修正とアプリケーションの再試行 |
7.3.2 | 初期化されていない値の検出 |
7.3.3 | ソース・ファイルの探索 |
7.4 | アプリケーションによるヒープ使用の検査 |
7.4.1 | メモリ・リークの検出 |
7.4.2 | ヒープの読み取りとリーク・レポート |
7.4.3 | リークの探索 |
7.4.4 | ヒープ・ヒストリの解釈 |
7.5 | シンボル情報が不十分なプログラムにおける Third Degree の使用 |
7.6 | Third Degree エラー・レポートの有効性検査 |
7.7 | 検出されないエラー |
8 | プログラムのプロファイルによる性能の向上 |
8.1 | プロファイルのサンプル・プログラム |
8.2 | プロファイルのコンパイラ・オプション |
8.3 | 手動による設計とコードの最適化 |
8.3.1 | 手法 |
8.3.2 | ツールと例 |
8.3.2.1 | 呼び出しグラフを使用した CPU 時間のプロファイル |
8.3.2.1.1 | hiprof プロファイラを使用する方法 |
8.3.2.1.2 | cc コマンドの -pg オプションを使用する方法 |
8.3.2.2 | ソース行または命令の,CPU 時間またはイベントのプロファイル |
8.3.2.2.1 | uprofile プロファイラを使用する方法 |
8.3.2.2.2 | hiprof プロファイラを使用する方法 |
8.3.2.2.3 | cc コマンドの -p オプションを使用する方法 |
8.3.2.2.4 | pixie プロファイラを使用する方法 |
8.4 | システム・リソース使用の最小化 |
8.4.1 | 手法 |
8.4.2 | ツールと例 |
8.4.2.1 | システム・モニタ |
8.4.2.2 | ヒープ・メモリの解析 |
8.5 | テスト・ケースの重要性の確認 |
8.5.1 | 手法 |
8.5.2 | ツールと例題 |
8.6 | 表示するプロファイル情報の選択 |
8.6.1 | プロファイルの表示を特定プロシージャのみに制限する |
8.6.2 | ソース行ごとのプロファイル情報の表示 |
8.6.3 | 行ごとのプロファイル表示の制限 |
8.6.4 | プロファイル情報にシェアード・ライブラリを含める |
8.6.4.1 | 計測機構付きシェアード・ライブラリの位置の指定 |
8.7 | プロファイル・データ・ファイルのマージ |
8.7.1 | データ・ファイルの命名規則 |
8.7.2 | データ・ファイルのマージ手法 |
8.8 | マルチスレッド・アプリケーションのプロファイル |
8.9 | monitor ルーチンを使用したプロファイルの制御 |
9 | Atom ツールの使用および開発 |
9.1 | Atom ツールの実行 |
9.1.1 | インストール済みの Atom ツールの使用 |
9.1.2 | 開発中のテスト用ツール |
9.1.3 | Atom オプション |
9.2 | Atom ツールの開発 |
9.2.1 | Atom によるアプリケーションの表示 |
9.2.2 | Atom の計測ルーチン |
9.2.3 | Atom の計測インタフェース |
9.2.3.1 | プログラム内のナビゲーション |
9.2.3.2 | オブジェクトの作成 |
9.2.3.3 | アプリケーションの構成要素に関する情報の取得 |
9.2.3.4 | 名前および呼び出しターゲットの解決 |
9.2.3.5 | 分析ルーチン呼び出しの追加 |
9.2.3.6 | エントリ・ポイント呼び出しへの介入 |
9.2.4 | Atom の記述ファイル |
9.2.5 | 分析プロシージャの作成 |
9.2.5.1 | 入出力 |
9.2.5.2 | fork および exec システム・コール |
9.2.6 | 置換された呼び出し側アプリケーションのエントリ・ポイント |
9.2.7 | 分析ルーチンからの計測機構付き PC の決定 |
9.2.8 | サンプル・ツール |
9.2.8.1 | プロシージャ・トレース |
9.2.8.2 | プロファイル・ツール |
9.2.8.3 | データ・キャッシュ・シミュレーション・ツール |
10 | プログラムの最適化 |
10.1 | アプリケーション・プログラム作成のガイドライン |
10.1.1 | コンパイルに関する考慮事項 |
10.1.2 | リンクおよびロードに関する考慮事項 |
10.1.3 | spike およびプロファイル主導の最適化 |
10.1.3.1 | spike の概要 |
10.1.3.2 | プロファイル主導の最適化での spike の使用 |
10.1.4 | 前処理と後処理に関する考慮事項 |
10.1.5 | ライブラリ・ルーチンの選択 |
10.2 | アプリケーションのコーディング上のガイドライン |
10.2.1 | データ型についての考慮事項 |
10.2.2 | AdvFS ファイルでの直接入出力の使用 |
10.2.3 | キャッシュ使用とデータの境界合わせに関する考慮事項 |
10.2.4 | 一般的なコーディングに関する考慮事項 |
11 | 例外条件の処理 |
11.1 | 例外処理の概要 |
11.1.1 | C コンパイラ構文 |
11.1.2 | libexc ライブラリ・ルーチン |
11.1.3 | 例外処理をサポートするヘッダ・ファイル |
11.2 | ユーザ・プログラムで起こす例外 |
11.3 | 構造化例外ハンドラの作成 |
11.4 | 終了ハンドラの作成 |
12 | スレッド・セーフなライブラリの開発 |
12.1 | スレッド・サポートの概要 |
12.2 | POSIX 準拠のための実行時ライブラリの変更 |
12.3 | スレッド・セーフ・ルーチンおよびリエントラント・ルーチンの特性 |
12.3.1 | スレッド・セーフでないコーディング例 |
12.4 | スレッド・セーフ・コードの作成 |
12.4.1 | スレッド固有データに対する TIS の使用 |
12.4.1.1 | TIS の概要 |
12.4.1.2 | スレッド固有データの使用 |
12.4.2 | TLS (Thread Local Storage) の使用 |
12.4.2.1 | _ _thread 属性 |
12.4.2.2 | ガイドラインと制限 |
12.4.3 | スレッド間でデータを共用するためのミューテックス・ロックの使用 |
12.5 | マルチスレッド・アプリケーションの作成 |
12.5.1 | マルチスレッド C アプリケーションのコンパイル |
12.5.2 | マルチスレッド C アプリケーションのリンク |
12.5.3 | その他の言語のマルチスレッド・アプリケーションの作成 |
13 | OpenMP 並列処理 |
13.1 | コンパイル・オプション |
13.2 | 環境変数 |
13.3 | 実行時性能のチューニング |
13.3.1 | スケジュール・タイプとチャンクサイズの設定 |
13.3.2 | その他の制御 |
13.4 | プログラミング上の一般的な問題 |
13.4.1 | 範囲指定 |
13.4.2 | デッドロック |
13.4.3 | threadprivate ストレージ |
13.4.4 | ロックの使用 |
13.5 | インプリメンテーション固有の動作 |
13.6 | デバッグ |
13.6.1 | デバッグに必要な背景知識 |
13.6.2 | デバッグおよびアプリケーション分析のツール |
13.6.2.1 | Ladebug |
13.6.2.2 | Visual Threads |
13.6.2.3 | Atom および OpenMP ツール |
13.6.2.4 | その他のデバッグ支援機能 |
14 | EVM イベントの発信と受信 |
14.1 | イベントとイベント管理 |
14.2 | EVM イベント処理の概要 |
14.3 | EVM の起動と停止 |
14.4 | イベントの発信とアクセスの権限 |
14.5 | EVM イベントの内容 |
14.5.1 | 標準データ項目 |
14.5.1.1 | イベント名データ項目 |
14.5.1.1.1 | 予約コンポーネント名 |
14.5.1.1.2 | イベント名の比較 |
14.5.1.2 | イベントのフォーマット・データ項目 |
14.5.1.3 | イベントの優先度データ項目 |
14.5.1.4 | I18N カタログ名,メッセージ・セット ID,およびメッセージ ID データ項目 |
14.5.1.5 | クラスタ・イベント・データ項目 |
14.5.1.6 | 参照データ項目 |
14.5.2 | 変数データ項目 |
14.6 | イベント・セットの設計 |
14.6.1 | イベントに値する状態変更の決定 |
14.6.2 | イベントの説明テキストの作成 |
14.6.3 | イベント・テンプレートの設計 |
14.6.3.1 | イベント・テンプレートに設定する項目の決定 |
14.6.3.2 | イベント・テンプレート名と発信イベントの名前の照合 |
14.6.3.3 | テンプレートと発信イベントのデータ項目のマージ |
14.6.3.4 | テンプレート・ファイルのインストール -- 位置,命名,所有権,および許可の要件 |
14.6.3.5 | イベント・テンプレートの登録の確認 |
14.6.4 | イベント・テキストの翻訳の設定 (I18N) |
14.7 | EVM プログラミング・インタフェース |
14.7.1 | EVM ヘッダ・ファイル |
14.7.2 | EVM API ライブラリ |
14.7.3 | 戻り状態コード |
14.7.4 | シグナルの処理 |
14.7.5 | マルチスレッド・プログラムでの EVM |
14.7.6 | EVM イベントの再割り当てと複製 |
14.7.7 | コールバック関数 |
14.7.8 | 接続ポリシの選択 |
14.7.9 | 切断の処理 |
14.7.10 | 失われたイベント |
14.7.11 | イベント・フィルタの使用 |
14.7.12 | EVM プログラミング操作の例 |
14.7.12.1 | 簡単なイベント操作の実行 |
14.7.12.2 | 可変長の引数リストの使用 |
14.7.12.3 | 変数の追加と取得 |
14.7.12.4 | イベントの発信 |
14.7.12.5 | イベントの読み取りと書き込み |
14.7.12.6 | イベント通知の受信 |
14.7.12.7 | 複数の入出力ソースの処理 |
14.7.12.8 | フィルタ・エバリュエータの使用 |
14.7.12.9 | イベント名の照合 |
14.7.12.10 | 失われたイベントの処理 |
14.8 | EVM へのイベント・チャネルの追加 |
14.8.1 | 取得関数 |
14.8.2 | 詳細関数 |
14.8.3 | 説明関数 |
14.8.4 | 監視関数 |
14.8.5 | クリーンアップ関数 |
14.8.6 | チャネルのセキュリティ |
A | Tru64 UNIX システムにおける 32 ビット・ポインタの使用 |
A.1 | コンパイラ・システムと 32 ビット・ポインタの言語サポート |
A.2 | -taso オプションの使用 |
A.2.1 | -taso オプションの使用と効果 |
A.2.2 | -taso オプションの効果に対する制限事項 |
A.2.3 | taso 環境での malloc の動作 |
A.3 | -xtaso または -xtaso_short オプションの使用 |
A.3.1 | ポインタ・サイズの変更に関するコーディング上の注意事項 |
A.3.2 | 32 ビット・ポインタの使用に関する制限事項 |
A.3.3 | システム・ヘッダ・ファイルに関する問題の回避 |
B | System V 実行環境における相違点 |
B.1 | ソース・コードの互換性 |
B.2 | システム・コールとライブラリ・ルーチンの要約 |
C | 動的に構成可能なカーネル・サブシステムの作成 |
C.1 | 動的に構成可能なサブシステムの概要 |
C.2 | 属性テーブルの概要 |
C.2.1 | 定義属性テーブル |
C.2.2 | 定義属性テーブルの例 |
C.2.3 | 通信属性テーブル |
C.2.4 | 通信属性テーブルの例 |
C.3 | 構成ルーチンの作成 |
C.3.1 | 初期構成の実行 |
C.3.2 | 照会要求に対する応答 |
C.3.3 | 再構成要求に対する応答 |
C.3.4 | サブシステムで定義した操作の実行 |
C.3.5 | サブシステムの構成除外 |
C.3.6 | 構成ルーチンの終了 |
C.4 | オペレーティング・システムのリビジョンの確認 |
C.5 | ロード可能なサブシステムの構築とロード |
C.6 | 静的な構成可能サブシステムのカーネルへの構築 |
C.7 | サブシステムのテスト |
D | 並列処理 -- 従来の方法 |
D.1 | 並列処理プラグマの使用 |
D.1.1 | 一般的なコーディング規則 |
D.1.2 | 一般的な使用法 |
D.1.3 | 並列指示文のネスト |
D.2 | 並列処理プラグマの構文 |
D.2.1 | #pragma parallel |
D.2.2 | #pragma pfor |
D.2.3 | #pragma psection および #pragma section |
D.2.4 | #pragma critical |
D.2.5 | #pragma one processor |
D.2.6 | #pragma synchronize |
D.2.7 | #pragma enter gate および #pragma exit gate |
D.3 | 環境変数 |
E | デバイス特殊ファイル名の処理 |
F | -om および cord によるプログラムの最適化 |
F.1 | -om ポストリンク最適化プログラムの使用 |
F.1.1 | 概要 |
F.1.2 | -om によるプロファイル主導の最適化 |
F.2 | -cord によるプロファイル主導の再編成 |
例 |
5-1 | dbx の例で使用されているサンプル・プログラム |
8-1 | プロファイルのサンプル・プログラム |
8-2 | gprof を使用した hiprof の省略時のプロファイル例 |
8-3 | gprof を使用した hiprof の -cycles プロファイルの例 |
8-4 | gprof を使用した cc -pg プロファイルの例 |
8-5 | prof を使用した uprofile の CPU 時間プロファイルの例 |
8-6 | prof を使用した uprofile のデータ・キャッシュ・ミス・プロファイルの例 |
8-7 | hiprof -lines による PC サンプリング・プロファイルの例 |
8-8 | prof を使用した cc -p プロファイルの例 |
8-9 | prof を使用した pixie プロファイルの例 |
8-10 | third ログ・ファイルの例 |
8-11 | monstartup() と monitor() の使用 |
8-12 | プログラム内のプロファイル・バッファの割り当て |
8-13 | monitor_signal() を使用した,終了しないプログラムのプロファイル |
10-1 | ポインタと最適化 |
11-1 | 構造化例外としての SIGSEGV シグナルの処理 |
11-2 | 構造化例外としての IEEE 浮動小数点 SIGFPE の処理 |
11-3 | 複数の構造化例外ハンドラ |
11-4 | 例外による try 本体の異常終了 |
12-1 | スレッド・プログラム例 |
14-1 | イベントの説明テキストの例 |
14-2 | 簡単なイベント操作の実行 |
14-3 | 可変長の引数リストの使用 |
14-4 | 変数の追加と取得 |
14-5 | イベントの発信 |
14-6 | イベントの読み取りと書き込み |
14-7 | イベント通知の受信 |
14-8 | 複数の入出力ソースの処理 |
14-9 | フィルタ・エバリュエータの使用 |
14-10 | イベント名の照合 |
14-11 | 失われたイベントの処理 |
C-1 | 定義属性テーブルの例 |
C-2 | 通信属性テーブル |
C-3 | 初期構成の実行 |
C-4 | 照会要求に対する応答 |
C-5 | 再構成要求に対する応答 |
図 |
2-1 | プログラムのコンパイル |
2-2 | 省略時の構造体の位置合わせ |
2-3 | 省略時のビット・フィールドの位置合わせ |
2-4 | 次のパック境界までの埋め込み |
4-1 | アーカイブ・ライブラリとシェアード・ライブラリ |
4-2 | シェアード・ライブラリの複数バージョンとのリンク |
4-3 | 共用オブジェクト間の無効な複数バージョンの従属: 例 1 |
4-4 | 共用オブジェクト間の無効な複数バージョンの従属: 例 2 |
4-5 | 共用オブジェクト間の無効な複数バージョンの従属: 例 3 |
4-6 | シェアード・ライブラリの複数バージョンの有効な使用: 例 1 |
4-7 | シェアード・ライブラリの複数バージョンの有効な使用: 例 2 |
14-1 | EVM の概要 |
14-2 | 発信イベントとテンプレートのマージ |
A-1 | -taso オプションを使用した場合のメモリのレイアウト |
B-1 | システム・コールの解決 |
C-1 | システム属性値の初期化 |
表 |
1-1 | プログラミングのフェーズと Tru64 UNIX |
2-1 | コンパイラ・システムの機能 |
2-2 | ファイルの接尾語と対応ファイル |
2-3 | cc コマンドのオプション・カテゴリごとの省略時オプション |
3-1 | Intrinsics 関数 |
4-1 | シェアード・ライブラリのバージョンを管理するリンカ・オプション |
5-1 | コマンド構文の記述に使用されるキーワード |
5-2 | dbx コマンド・オプション |
5-3 | dbx の # 式演算子 |
5-4 | C の式演算子 |
5-5 | 組み込みデータ型 |
5-6 | 入力可能な定数 |
5-7 | emacs モードの dbx コマンド行編集コマンド |
5-8 | 定義済みの dbx 変数 |
5-9 | メモリ・アドレス表示モード |
6-1 | lint 警告クラス |
9-1 | サンプルのインストール済み Atom ツール |
9-2 | Atom のプログラム照会ルーチン |
9-3 | Atom のオブジェクト照会ルーチン |
9-4 | Atom のプロシージャ照会ルーチン |
9-5 | Atom エントリ・ポイント照会ルーチン |
9-6 | Atom の基本ブロック照会ルーチン |
9-7 | Atom の命令照会ルーチン |
11-1 | 例外処理をサポートするヘッダ・ファイル |
14-1 | 標準データ項目 |
14-2 | イベント・テキストへの変数代入 |
14-3 | EVM の変数データの型 |
14-4 | 名前照合の例 |
14-5 | 多国語対応のイベントに対するデータ項目値の例 |
B-1 | システム・コールの要約 |
B-2 | ライブラリ関数の要約 |
C-1 | 属性データ型 |
C-2 | 属性に対して許可される要求を指定するコード |
C-3 | 属性状態コード |
索引 |