開発者ガイド
Red Hat Enterprise Linux 6 のアプリケーション開発ツールの概要
概要
第1章 Eclipse の開発環境 リンクのコピーリンクがクリップボードにコピーされました!
gcc や gdb など) と Eclipse は別個の 2 つのアプローチをプログラミングに提供します。ほとんどの従来型 Linux ツールは、Eclipse ベースのものよりはるかに柔軟性があり繊細で (トータルでは) 強力なものです。一方でこれらの従来型 Linux ツールは熟達するのが難しく、ほとんどのプログラマーやプロジェクトが必要とする以上の機能を提供します。対照的に Eclipse は、これらの機能の一部を犠牲にして統合型環境を優先します。これは、単一のグラフィカルなインターフェースでアクセス可能なツールを好むユーザーには適しています。
1.1. Eclipse プロジェクトの開始 リンクのコピーリンクがクリップボードにコピーされました!
yum install eclipse
# yum install eclipse
/usr/bin/eclipse を実行するか、インストール時に作成されたシステムメニューを使用します。
図1.1 Workspace Launcher
図1.2 New Project ウィザード
図1.3 Import ウィザード
1.2. Eclipse ユーザーインターフェース リンクのコピーリンクがクリップボードにコピーされました!
図1.4 Eclipse ユーザーインターフェース (デフォルト)
図1.5 Eclipse Editor
.c で終わっているファイルには C Editor )。Editor を設定するには、 > > > に移動します。
図1.6 Project Explorer
図1.7 Outline Window
図1.8 Console View
図1.9 Tasks View
図1.10 追跡されたコメントの例
//FIXME または //TODO タグでマークされたコメントを追跡します。タスクタグ と呼ばれるこれらの追跡されたタグは、他の言語で記述されたソースファイルによって異なります。タスクタグを追加または設定するには、 > に移動し、task tags のキーワードで特定のエディター/言語のタスクタグ設定メニューを表示します。
図1.11 Task Properties
図1.12 Problems View
1.2.2. キーボードショートカット リンクのコピーリンクがクリップボードにコピーされました!
図1.14 キーボードショートカット
図1.15 キーボードショートカットの設定
1.2.3. パースペクティブのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
図1.16 パースペクティブメニューのカスタマイズ
図1.17 ツールバー
図1.19 Command Group Availability タブ
図1.20 Shortcuts タブ
- >
- >
- >
1.3. Eclipse での C/C++ ソースコードの編集 リンクのコピーリンクがクリップボードにコピーされました!
libhover プラグイン」 を参照してください。
1.3.1. libhover プラグイン リンクのコピーリンクがクリップボードにコピーされました!
libhover プラグインは、GNU C ライブラリおよび GNU C++ 標準ライブラリにプラグアンドプレイのホバーヘルプサポートを提供します。これにより開発者は、ホバーヘルプ および code completion を使ってよりシームレスで便利な方法で Eclipse IDE 内で glibc および libstdc++ ライブラリに関する既存ドキュメントを参照できます。
メンバー関数の入力補完のドキュメントは C++ に対応していません。ヘッダーファイルからのプロトタイプのみが提供されます。また、C++ メンバー関数では、ソースファイルにヘッダーファイルを追加する機能は対応していません。
libhover は CDT インデクサーを使ってファイルの インデックス化 をする必要があります。インデックス化は、ビルドのコンテキストで対象ファイルを解析します。ビルドコンテキストは、ヘッダーファイルがどこから来るか、またタイプやマクロ、同様のアイテムがどのように解決されるかを決定します。libhover はヘッダーファイルの場所が分かっている場合もありますが、C++ ソースファイルのインデックス化ができるようになるには、通常実際のビルドが先に実行される必要があります。
libhover プラグインは C++ ソースのインデックス化を必要とする場合があります。C++ は、クラス内においても異なるクラスが同一名のメンバーを持つことを可能とし、メンバーは異なるメソッドシグネチャの同一名を持つ場合があります。これには、クラス名と関数のパラメーターの署名が提供されて正確にどのメンバーが参照されているかを判断する必要があります。
include ファイルの解析が必要になります。libhover はインデックス化によってのみ、これができます。
C 関数では、入力補完 (Ctrl+Space) を実行することで、潜在的なソースに追加される C 関数の一覧が提供され (たとえば、prin と入力して Ctrl+Space を押すと入力補完候補の 1 つとしてprintf が一覧表示されます)、新たなウィンドウでドキュメントが表示され、厳密にどの C 関数が必要かを判断します。
図1.21 Code Completion (入力候補) の使用
libhover はホバーヘルプや code 入力候補を提供するために C ソースファイルをインデックス化する必要がありません。C ライブラリー関数用の適切なヘッダーファイルインクルードステートメントは、すでに存在していない場合は自動的に追加されます。
1.3.1.1. 設定および使用方法 リンクのコピーリンクがクリップボードにコピーされました!
libhover ライブラリー用のホバーヘルプはデフォルトで有効となっており、プロジェクトごとに無効とすることができます。特定のプロジェクトごとにホバーヘルプを無効または有効にするには、プロジェクト名を右クリックして をクリックします。表示されるメニューで > と進みます。 セクションのライブラリーにチェックを入れるか外すかして、そのライブラリーのホバーヘルプを有効/無効にします。
図1.22 ホバーヘルプの有効/無効化
libhover ライブラリが機能上で重複している場合は特に、特定のライブラリのホバーヘルプを無効にすることをお勧めします。例えば、newlib C ライブラリのような C ライブラリ用の libhover プラグインが手動でインストールされたとします (newlib C ライブラリプラグインは Red Hat Enterprise Linux 6 で提供されていないことに注意してください)。ホバーヘルプには C 関数が含まれており、その名前が GNU C ライブラリ内のものと重複します (デフォルトで提供) 。これらのホバーヘルプの両方が同時にアクティブになるのはユーザーに好ましくないので、どちらかを無効にすることが実用的です。
libhover ライブラリーが有効となっていてライブラリー間で関数の重複がある場合、 セクションで 最初に 一覧表示されているライブラリーからの関数のヘルプコンテンツがホバーヘルプに表示されます (つまり、図1.22「ホバーヘルプの有効/無効化」 では glibc がこれに当たります)。code 入力候補では、libhover が有効なすべての libhover ライブラリーから考えられるすべての代替案を提供します。
libhover が選択した C 関数もしくは C++ メンバー関数に関するライブラリードキュメントが表示されます。
図1.23 ホバーヘルプの使用
1.4. Eclipse での Java ソースコードの編集 リンクのコピーリンクがクリップボードにコピーされました!
build.xml 用の特別エディターも含まれています。プログラムの実行およびデバッグの機能も利用できます。
Eclipse の は、Java プロジェクトの開始に必要な標準的セットアップのほとんどを実行します。これによりユーザーは、どの Java ランタイム環境を使用するかや望ましいプロジェクトファイルツリーのレイアウトなどの様々なオプションを選択したり、カスタマイズしたりすることができます。
Eclipse の Java 開発環境 (JDT) は、豊富なコンテンツアシスタンス機能を提供することで、生産性を高め、エラーを減らします。これは通常、Ctrl + Space を押すと起動します。この機能に含まれるのは、コードやライブラリーでのメソッド名の完成や、Javadoc でのパラメーター名の挿入、メソッド呼び出しの際のパラメーターの記入などです。これは完全にカスタマイズ可能で、特定候補を禁止したり、コード記入の際に使用するカスタムコードテンプレートを追加したりすることができます。
コードの書式設定は Ctrl + Shift + F でアクセスできる JDT の別の便利な機能です。書式設定は > > > > に移動し、インストール済みの書式設定プロファイルを使用するか、プロジェクトのスタイルに一致するように新たなプロファイルを作成するかを選択することができます。
JDT にはデバッグ機能もいくつかあります。対象のコードの行の左マージンでダブルクリックすると、ブレークポイントが作成されます。デバッガーの実行中は、そのコード行でプログラムは停止するので、これはエラーの場所の検出に役立ちます。
JDT は高度にカスタマイズ可能で、幅広い機能があり、その一覧は、 > > と > の Java 設定で表示されます。JDT の詳細なドキュメントとその機能については、 > > にある 『Java Development User Guide』 を参照してください。
1.5. Eclipse RPM ビルディング リンクのコピーリンクがクリップボードにコピーされました!
.spec ファイルを管理する際に役立つ機能を提供します。このプラグインを使うと、ユーザーは .spec ファイルの編集の際に、オートコンプリート機能やハイライト、ファイルのハイパーリンク、折り曲げなどのいくつかの Eclipse GUI 機能を活用することができます。
rpmlint ツールを Eclipse インターフェースに統合します。rpmlint はコマンドラインツールで、開発者が一般的な RPM パッケージエラーを検出する際に役立ちます。Eclipse インターフェースが提供する豊富な仮想化は、rpmlint がレポートするミスを開発者が迅速に検出、表示、訂正する際に役立ちます。
.spec file editor プラグインは、RPM プロジェクトからの RPM ファイルのビルドもサポートします。この機能は、エクスポートウィザード ( → → ) を利用することで使用可能になり、ソース RPM (src.rpm) かバイナリー RPM、もしくはその両方が必要かどうかを選択することが可能になります。
.spec ファイルの実際の行に向けます。
.src.rpm) ファイルのインポートウィザードも重要です。これは、 → → にあります。これを使用すると、ソース RPM が既に作成されている場合、設定なしでユーザーは簡単に開始することができます。するとこのプロジェクトは、spec ファイルの編集と、ソース/バイナリー RPM へのビルド (エクスポート) の準備ができたことになります。
1.6. Eclipse のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
図1.24 Help
図1.26 動的ヘルプ
第2章 協同作業 リンクのコピーリンクがクリップボードにコピーされました!
2.1. Concurrent Versions System (CVS) リンクのコピーリンクがクリップボードにコピーされました!
2.1.1. CVS のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
cvs パッケージのインストール
root として、シェルプロンプトで以下のコマンドを入力します。
yum install cvs
yum install cvs
デフォルトのエディターの設定
cvs import または cvs commit など、特定のコマンドでは短いログメッセージを記述する必要があります。cvs クライアントアプリケーションはまず環境変数 $CVSEDITOR のコンテンツを読み込み、次に、より一般的な環境変数 $EDITOR を読み込み、どのテキストエディターを起動するかを決定します。どちらの変数も指定されていない場合には、vi が起動します。
$CVSEDITOR の値を永続的に変更する場合は、以下のコマンドを実行します。
echo "export CVSEDITOR=command" >> ~/.bashrc
echo "export CVSEDITOR=command" >> ~/.bashrc
export CVSEDITOR=command の行を ~/.bashrc に追加します。command は、任意のエディターを実行するコマンドに置き換えます (例: emacs)。現在の shell セッションで、この変更を有効にするには、シェルプロンプトで以下のコマンドを入力して ~/.bashrc のコマンドを実行する必要があります。
. ~/.bashrc
. ~/.bashrc
例2.1 デフォルトのテキストエディターの設定
echo "export CVSEDITOR=emacs" >> ~/.bashrc . ~/.bashrc
~]$ echo "export CVSEDITOR=emacs" >> ~/.bashrc
~]$ . ~/.bashrc
2.1.2. 新規リポジトリーの作成 リンクのコピーリンクがクリップボードにコピーされました!
空のリポジトリーの初期化
cvs -d path init
cvs -d path init
/var/cvs/)。または、$CVSROOT の環境変数の値を変更して、このパスを指定することもできます。
export CVSROOT=path
export CVSROOT=path
cvs init やその他の CVS 関連のコマンドの実行時にパスを省略することができます。
cvs init
cvs init
例2.2 新規 CVS リポジトリーの初期化
~/cvs/ ディレクトリーに空の CVS リポジトリーを作成するには、以下を入力します。
export CVSROOT=~/cvs cvs init
~]$ export CVSROOT=~/cvs
~]$ cvs init
リポジトリーへのデータのインポート
cvs [-d cvs_repository] import [-m "commit message"] module vendor_tag release_tag
cvs [-d cvs_repository] import [-m "commit message"] module vendor_tag release_tag
project)、vendor_tag と release_tag はベンダーとリリースタグを指す点に注意してください。
例2.3 CVS リポジトリーへのプロジェクトのインポート
ls myproject AUTHORS doc INSTALL LICENSE Makefile README src TODO
~]$ ls myproject
AUTHORS doc INSTALL LICENSE Makefile README src TODO
~/cvs/ に空の CVS リポジトリーがあるとします。このリポジトリーの project に、ベンダータグ mycompany と、リリースタグ init を付けて、プロジェクトをインポートするには、以下を実行します。
2.1.3. 作業コピーのチェックアウト リンクのコピーリンクがクリップボードにコピーされました!
cvs -d cvs_repository checkout module
cvs -d cvs_repository checkout module
project) である点に注意してください。また $CVSROOT の環境変数は以下のように設定できます。
export CVSROOT=cvs_repository
export CVSROOT=cvs_repository
-d オプションなしで cvs checkout コマンドを使用することもできます。
cvs checkout module
cvs checkout module
例2.4 作業コピーのチェックアウト
~/cvs/ があり、このリポジトリーにproject という名前のモジュールが含まれていると仮定します。このモジュールの作業コピーをチェックアウトするには、以下を入力します。
2.1.4. ファイルの追加および削除 リンクのコピーリンクがクリップボードにコピーされました!
ファイルの追加
cvs add file…
cvs add file…
cvs commit コマンドを実行します。
例2.5 CVS リポジトリーへのファイルの追加
project]$ ls AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODO
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODO
ChangeLog 以外のファイルとディレクトリーはすべてリビジョンが管理されています。このファイルを CVS リポジトリーに追加するようにスケジュールするには、以下を入力します。
project]$ cvs add ChangeLog cvs add: scheduling file `ChangeLog' for addition cvs add: use 'cvs commit' to add this file permanently
project]$ cvs add ChangeLog
cvs add: scheduling file `ChangeLog' for addition
cvs add: use 'cvs commit' to add this file permanently
ファイルの削除
rm file…
rm file…
cvs remove file…
cvs remove file…
cvs commit コマンドを実行します。
例2.6 CVS リポジトリーからのファイルの削除
project]$ ls AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODO
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODO
TODO ファイルを CVS リポジトリーから削除するようにスケジュールするには、以下を入力します。
project]$ rm TODO project]$ cvs remove TODO cvs remove: scheduling `TODO' for removal cvs remove: use 'cvs commit' to remove this file permanently
project]$ rm TODO
project]$ cvs remove TODO
cvs remove: scheduling `TODO' for removal
cvs remove: use 'cvs commit' to remove this file permanently
2.1.5. 変更の表示 リンクのコピーリンクがクリップボードにコピーされました!
ステータスの表示
cvs status
cvs status
Up-to-date、Locally Added、Locally Removed または Locally Modified) およびリビジョンなど、リビジョン管理が行われるファイルごとに詳細情報が表示されます。ただし、作業コピーの変更内容だけを確認するには、シェルプロンプトで以下を入力して、出力を簡素化することができます。
cvs status 2>/dev/null | grep Status: | grep -v Up-to-date
cvs status 2>/dev/null | grep Status: | grep -v Up-to-date
例2.7 作業コピーのステータスの表示
project]$ ls AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
ChangeLog 以外の)、すでにリビジョン管理がされています。リビジョン管理がされている TODO ファイルは、削除のスケジューリングがされており、この作業コピーはすでに存在しません。最後に Makefile にはローカルの変更内容が含まれます。このような作業コピーのステータスを表示するには、以下を入力します。
project]$ cvs status 2>/dev/null | grep Status: | grep -v Up-to-date File: ChangeLog Status: Locally Added File: Makefile Status: Locally Modified File: no file TODO Status: Locally Removed
project]$ cvs status 2>/dev/null | grep Status: | grep -v Up-to-date
File: ChangeLog Status: Locally Added
File: Makefile Status: Locally Modified
File: no file TODO Status: Locally Removed
差異の表示
cvs diff [file…]
cvs diff [file…]
例2.8 作業コピーへの変更の表示
project]$ ls AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
Makefile にはローカルでの変更が含まれます。これらの変更を表示するには以下を入力します。
2.1.6. 変更のコミット リンクのコピーリンクがクリップボードにコピーされました!
cvs commit [-m "commit message"]
cvs commit [-m "commit message"]
例2.9 CVS リポジトリーへの変更のコミット
project]$ ls AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
ChangeLog は CVS リポジトリーへの追加がスケジューリングされており、Makefile はすでにリビジョン管理がされ、ローカルの変更が含まれます。また、リビジョンが管理されている TODO ファイルは削除するようにスケジューリングされており、作業コピーには存在しません。CVS リポジトリーにこれらの変更をコミットするには、以下を入力します。
2.1.7. 作業コピーの更新 リンクのコピーリンクがクリップボードにコピーされました!
cvs update
cvs update
例2.10 作業コピーの更新
project]$ ls AUTHORS CVS doc INSTALL LICENSE Makefile README src TODO
project]$ ls
AUTHORS CVS doc INSTALL LICENSE Makefile README src TODO
ChangeLog を追加し、TODO ファイルを削除し、さらに Makefile に変更を加えたと仮定します。この作業コピーを更新するには、以下を入力します。
2.1.8. その他のリソース リンクのコピーリンクがクリップボードにコピーされました!
インストールされているドキュメント
- cvs(1) — cvs クライアントプログラムの man ページでは、使用方法に関する詳しい情報が提供されます。
2.2. Apache Subversion (SVN) リンクのコピーリンクがクリップボードにコピーされました!
2.2.1. Subversion のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
subversion パッケージのインストール
root として、シェルプロンプトで以下のコマンドを入力します。
yum install subversion
yum install subversion
デフォルトのエディターの設定
svn import または svn commit など、特定のコマンドでは短いログメッセージを記述する必要があります。svn クライアントアプリケーションはまず環境変数 $SVN_EDITOR のコンテンツを読み込み、次に、より一般的な環境変数 $VISUAL と $EDITOR を読み込み、どのテキストエディターを起動するかを決定します。どちらの変数も指定されていない場合には、エラーが報告されます。
$SVN_EDITOR の値を永続的に変更する場合は、以下のコマンドを実行します。
echo "export SVN_EDITOR=command" >> ~/.bashrc
echo "export SVN_EDITOR=command" >> ~/.bashrc
export SVN_EDITOR=command の行を ~/.bashrc に追加します。command は、任意のエディターを実行するコマンドに置き換えます (例: emacs)。現在の shell セッションで、この変更を有効にするには、シェルプロンプトで以下のコマンドを入力して ~/.bashrc のコマンドを実行する必要があります。
. ~/.bashrc
. ~/.bashrc
例2.11 デフォルトのテキストエディターの設定
echo "export SVN_EDITOR=emacs" >> ~/.bashrc . ~/.bashrc
~]$ echo "export SVN_EDITOR=emacs" >> ~/.bashrc
~]$ . ~/.bashrc
2.2.2. 新規リポジトリーの作成 リンクのコピーリンクがクリップボードにコピーされました!
空のリポジトリーの初期化
svnadmin create path
svnadmin create path
/var/svn/)。ディレクトリーがない場合には、svnadmin create を実行すると作成されます。
例2.12 新規 Subversion リポジトリーの初期化
~/svn/ ディレクトリーに Subversion リポジトリーを作成するには、以下を入力します。
svnadmin create svn
~]$ svnadmin create svn
リポジトリーへのデータのインポート
svn import local_path svn_repository/remote_path [-m "commit message"]
svn import local_path svn_repository/remote_path [-m "commit message"]
. を使用)、svn_repository は、Subversion リポジトリーの URL に、remote_path は Subversion リポジトリーのターゲットディレクトリー (例: project/trunk) に置き換えます。
例2.13 Subversion リポジトリーへのプロジェクトのインポート
ls myproject AUTHORS doc INSTALL LICENSE Makefile README src TODO
~]$ ls myproject
AUTHORS doc INSTALL LICENSE Makefile README src TODO
~/svn/ (今回の例では /home/john/svn/) に空の Subversion リポジトリーがあると仮定します。このリポジトリーの project/trunk るプロジェクトをインポートするには、以下を入力します。
2.2.3. 作業コピーのチェックアウト リンクのコピーリンクがクリップボードにコピーされました!
svn checkout svn_repository/remote_path [directory]
svn checkout svn_repository/remote_path [directory]
例2.14 作業コピーのチェックアウト
~/svn/ ディレクトリー (今回の例では /home/john/svn/) に Subrevision リポジトリーがあり、このリポジトリーの project/trunk サブディレクトリーに最新版のプロジェクトが含まれると仮定します。このプロジェクトの作業コピーをチェックアウトするには、以下を入力します。
2.2.4. ファイルの追加、名前変更、削除 リンクのコピーリンクがクリップボードにコピーされました!
ファイルまたはディレクトリーの追加
svn add file…
svn add file…
svn add directory…
svn add directory…
cvs commit コマンドを実行します。
例2.15 Subversion リポジトリーへのファイルの追加
project]$ ls AUTHORS ChangeLog doc INSTALL LICENSE Makefile README src TODO
project]$ ls
AUTHORS ChangeLog doc INSTALL LICENSE Makefile README src TODO
ChangeLog 以外のファイルとディレクトリーはすべてリビジョンが管理されています。このファイルを Subversion リポジトリーに追加するようにスケジュールするには、以下を入力します。
project]$ svn add ChangeLog A ChangeLog
project]$ svn add ChangeLog
A ChangeLog
ファイルまたはディレクトリーの名前変更
svn move old_name new_name
svn move old_name new_name
svn commit コマンドを実行します、
例2.16 Subversion リポジトリーのファイル名の変更
project]$ ls AUTHORS ChangeLog doc INSTALL LICENSE Makefile README src TODO
project]$ ls
AUTHORS ChangeLog doc INSTALL LICENSE Makefile README src TODO
LICENSE ファイルの名前を COPYING に変更するには、以下を入力します。
project]$ svn move LICENSE COPYING A COPYING D LICENSE
project]$ svn move LICENSE COPYING
A COPYING
D LICENSE
svn move は自動的に、作業コピーのファイルの名前も変更する点に注意してください。
project]$ ls AUTHORS ChangeLog COPYING doc INSTALL Makefile README src TODO
project]$ ls
AUTHORS ChangeLog COPYING doc INSTALL Makefile README src TODO
ファイルまたはディレクトリーの削除
svn delete file…
svn delete file…
svn delete directory…
svn delete directory…
cvs commit コマンドを実行します。
例2.17 Subversion リポジトリーからのファイルの削除
project]$ ls AUTHORS ChangeLog COPYING doc INSTALL Makefile README src TODO
project]$ ls
AUTHORS ChangeLog COPYING doc INSTALL Makefile README src TODO
TODO ファイルを SVN リポジトリーから削除するようにスケジュールするには、以下を入力します。
project]$ svn delete TODO D TODO
project]$ svn delete TODO
D TODO
svn delete は自動的に、作業コピーのファイルを削除する点に注意してください。
project]$ ls AUTHORS ChangeLog COPYING doc INSTALL Makefile README src
project]$ ls
AUTHORS ChangeLog COPYING doc INSTALL Makefile README src
2.2.5. 変更の表示 リンクのコピーリンクがクリップボードにコピーされました!
ステータスの表示
svn status
svn status
A for a file that is scheduled for addition, D for a file that is scheduled for removal, M for a file that contains local changes, C for a file with unresolved conflicts, ? for a file that is not under revision control).
例2.18 作業コピーのステータスの表示
project]$ ls AUTHORS ChangeLog COPYING doc INSTALL Makefile README src
project]$ ls
AUTHORS ChangeLog COPYING doc INSTALL Makefile README src
ChangeLog 以外の)、すでにリビジョン管理がされています。リビジョン管理がされている TODO ファイルは、削除のスケジューリングがされており、この作業コピーはすでに存在しません。LICENSE ファイルの名前は COPYING に変更され、Makefile にはローカルの変更内容が含まれます。このような作業コピーのステータスを表示するには、以下を入力します。
差異の表示
svn diff [file…]
svn diff [file…]
例2.19 作業コピーへの変更の表示
project]$ ls AUTHORS ChangeLog COPYING CVS doc INSTALL Makefile README src
project]$ ls
AUTHORS ChangeLog COPYING CVS doc INSTALL Makefile README src
Makefile にはローカルでの変更が含まれます。これらの変更を表示するには以下を入力します。
2.2.6. 変更のコミット リンクのコピーリンクがクリップボードにコピーされました!
svn commit [-m "commit message"]
svn commit [-m "commit message"]
例2.20 Subversion リポジトリーへの変更のコミット
project]$ ls AUTHORS ChangeLog COPYING doc INSTALL Makefile README src
project]$ ls
AUTHORS ChangeLog COPYING doc INSTALL Makefile README src
ChangeLog は Subversion リポジトリーへの追加がスケジューリングされており、Makefile はすでにリビジョン管理がされ、ローカルの変更が含まれます。リビジョンが管理されている TODO ファイルは削除するようにスケジューリングされており、作業コピーには存在しません。さらに、LICENSE ファイルの名前は COPYING に変更されました。Subversion リポジトリーにこれらの変更をコミットするには、以下を入力します。
2.2.7. 作業コピーの更新 リンクのコピーリンクがクリップボードにコピーされました!
svn update
svn update
例2.21 作業コピーの更新
project]$ ls AUTHORS doc INSTALL LICENSE Makefile README src TODO
project]$ ls
AUTHORS doc INSTALL LICENSE Makefile README src TODO
ChangeLog の追加と TODO ファイルの削除を行い、LICENSE から COPYING に名前を変更したうえに、Makefile に変更を加えたと仮定します。この作業コピーを更新するには、以下を入力します。
2.2.8. その他のリソース リンクのコピーリンクがクリップボードにコピーされました!
インストールされているドキュメント
svn help—svn helpコマンドにより、詳しい svn の使用方法が出力されます。svnadmin help—svnadmin helpコマンドにより svnadmin の使用方法の詳細情報が出力されます。
オンラインのドキュメント
- Subversion によるバージョン管理 — Subversion の公式ウェブサイトで、『Subversion によるバージョン管理』 マニュアルを参照してください。このマニュアルでは、Subversion、管理、使用方法について詳しく説明されています。
2.3. Git リンクのコピーリンクがクリップボードにコピーされました!
2.3.1. Git のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
git パッケージのインストール
root として、シェルプロンプトで以下のコマンドを入力します。
yum install git
~]# yum install git
デフォルトのテキストエディターの設定
git commit などの Git コマンドでは、外部テキストエディターで短いメッセージを記述するか、変更を加える必要があります。Git は、GIT_EDITOR の環境変数、core.editor の設定オプション、VISUAL 環境変数の値をこの順番に読み込み、最後に EDITOR の環境変数の値の読み込みを使用してどのテキストエディターを起動するか決定します。これらのオプションや変数が指定されていない場合には、git コマンドにより vi が起動されます。
core.editor の設定オプションの値を変更して別のテキストエディターを指定するには、シェルプロンプトで以下を入力します。
git config --global core.editor command
git config --global core.editor command
例2.22 デフォルトのテキストエディターの設定
vim を使用するように設定するには、シェルプロンプトで以下を入力します。
git config --global core.editor vim
~]$ git config --global core.editor vim
ユーザー情報の設定
git config --global user.name "full name"
git config --global user.name "full name"
git config --global user.email "email_address"
git config --global user.email "email_address"
例2.23 ユーザー情報の設定
John Doe をフルネームとして、john@example.com をメールアドレスとして使用するように設定するには、以下をシェルプロンプトに入力します。
git config --global user.name "John Doe" git config --global user.email "john@example.com"
~]$ git config --global user.name "John Doe"
~]$ git config --global user.email "john@example.com"
2.3.2. 新規リポジトリーの作成 リンクのコピーリンクがクリップボードにコピーされました!
空のリポジトリーの初期化
git init
git init
.git と呼ばれる隠しディレクトリーが作成されます。
リポジトリーへのデータのインポート
git add .
git add .
git commit [-m "commit message"]
git commit [-m "commit message"]
-m オプションを省略すると、このコマンドにより、外部テキストエディターでコミットのメッセージを入力できるようになります。デフォルトのテキストエディターの設定方法に関する情報は 「デフォルトのテキストエディターの設定」 を参照してください。
2.3.3. 既存のリポジトリーのクローン作成 リンクのコピーリンクがクリップボードにコピーされました!
git clone git_repository [directory]
git clone git_repository [directory]
2.3.4. ファイルの追加、名前変更、削除 リンクのコピーリンクがクリップボードにコピーされました!
ファイルおよびディレクトリーの追加
git add file...
git add file...
git add directory...
git add directory...
ファイルとディレクトリーの名前の変更
git mv old_name new_name
git mv old_name new_name
ファイルおよびディレクトリーの削除
git rm file...
git rm file...
git rm -r directory...
git rm -r directory...
2.3.5. 変更の表示 リンクのコピーリンクがクリップボードにコピーされました!
現在のステータスの表示
git status
git status
new file、renamed、deleted または modified) を表示して、次回のコミットの差異にどの変更が適用されるかが表示されます。変更のコミット方法に関する情報は、「変更のコミット」を参照してください。
差異の表示
git diff
git diff
git diff file...
git diff file...
2.3.6. 変更のコミット リンクのコピーリンクがクリップボードにコピーされました!
git commit [-m "commit message"]
git commit [-m "commit message"]
-a のコマンドラインオプションを追加します。
git commit -a [-m "commit message"]
git commit -a [-m "commit message"]
-m オプションを省略すると、このコマンドにより、外部テキストエディターでコミットのメッセージを入力できるようになる点に注意してください。デフォルトのテキストエディターの設定方法に関する情報は 「デフォルトのテキストエディターの設定」 を参照してください。
2.3.8. リポジトリーの更新 リンクのコピーリンクがクリップボードにコピーされました!
git fetch remote_repository
git fetch remote_repository
git merge remote_repository
git merge remote_repository
git pull remote_repository
git pull remote_repository
2.3.9. その他のリソース リンクのコピーリンクがクリップボードにコピーされました!
インストールされているドキュメント
- gittutorial(7) — gittutorial と呼ばれる man ページには Git とその使用方法に関する簡単な説明が記載されています。
- gittutorial-2(7) — gittutorial-2 と呼ばれる man ページには Git とその使用方法に関する簡単な説明 (パート 2) が記載されています。
- 『Git ユーザーマニュアル』 — Git の HTML ドキュメントは
/usr/share/doc/git-1.7.1/user-manual.htmlにあります。
オンラインのドキュメント
第3章 ライブラリーおよびランタイムのサポート リンクのコピーリンクがクリップボードにコピーされました!
3.1. バージョン情報 リンクのコピーリンクがクリップボードにコピーされました!
| パッケージ名 | Red Hat Enterprise 6 | Red Hat Enterprise 5 | Red Hat Enterprise 4 |
|---|---|---|---|
| glibc | 2.12 | 2.5 | 2.3 |
| libstdc++ | 4.4 | 4.1 | 3.4 |
| boost | 1.41 | 1.33 | 1.32 |
| java | 1.5 (IBM)、1.6 (IBM、OpenJDK、Oracle Java) | 1.4、1.5、1.6 | 1.4 |
| python | 2.6 | 2.4 | 2.3 |
| php | 5.3 | 5.1 | 4.3 |
| ruby | 1.8 | 1.8 | 1.8 |
| httpd | 2.2 | 2.2 | 2.0 |
| postgresql | 8.4 | 8.1 | 7.4 |
| mysql | 5.1 | 5.0 | 4.1 |
| nss | 3.12 | 3.12 | 3.12 |
| openssl | 1.0.0 | 0.9.8e | 0.9.7a |
| libX11 | 1.3 | 1.0 | |
| firefox | 3.6 | 3.6 | 3.6 |
| kdebase | 4.3 | 3.5 | 3.3 |
| gtk2 | 2.18 | 2.10 | 2.04 |
注記
compat-glibc RPM は Red Hat Enterprise Linux 6 に含まれていますが、ランタイムパッケージではないので、何かの実行に必要というわけではありません。これはヘッダーファイルやリンク用のダミーライブラリーを含む、単なる開発パッケージです。これを使用することで、Red Hat Enterprise Linux の古いバージョンでコンパイルおよびリンクのパッケージを実行することが可能になります (それらのヘッダーおよびライブラリーに compat-gcc-* を使用)。rpm -qpi compat-glibc-* を実行すると、このパッケージの使用方法に関する情報が提供されます。
compat-glib の詳細については、「compat-glibc」 を参照してください。
3.2. 互換性 リンクのコピーリンクがクリップボードにコピーされました!
- ソースの互換性
- ソースの互換性は、コードが稼働環境の異なるインスタンスにおいて一貫性があり予測可能な方法でコンパイルおよび実行することを指定します。この種類の互換性は、特定の Application Programming Interfaces (API) との適合性で定義されます。
- バイナリーの互換性
- バイナリーの互換性は、実行可能ファイルおよび Dynamic Shared Objects (動的共有オブジェクト: DSO) の形式でコンパイル済みバイナリーが稼働環境の異なるインスタンスで正確に実行することを指定します。この種類の互換性は、特定の Application Binary Interfaces (ABI) との適合性で定義されます。
3.2.1. 静的リンク リンクのコピーリンクがクリップボードにコピーされました!
- メモリフットプリントが大きい。
- アプリケーションの起動時間が長い。
- 静的リンクだと glibc 機能が限定される。
- ロードアドレスのランダム化などのセキュリティ対策が使用できない。
- glibc 外の共有オブジェクトの動的ローディングがサポートされていない。
3.3. ライブラリーおよびランタイムの詳細 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1. compat-glibc リンクのコピーリンクがクリップボードにコピーされました!
compat-glibc は、以前のバージョンの Red Hat Enterprise Linux からの共有静的ライブラリーのサブセットを提供します。Red Hat Enterprise Linux 6 では、以下のライブラリーが提供されます。
libanllibcidnlibcryptlibclibdllibmlibnsllibpthreadlibresolvlibrtlibthread_dblibutil
gcc -fgnu89-inline -I /usr/lib/x86_64-redhat-linux5E/include -B /usr/lib/x86_64-redhat-linux5E/lib64/ -lc_nonshared
# gcc -fgnu89-inline -I /usr/lib/x86_64-redhat-linux5E/include -B /usr/lib/x86_64-redhat-linux5E/lib64/ -lc_nonshared
3.3.2. GNU C++ 標準ライブラリー リンクのコピーリンクがクリップボードにコピーされました!
libstdc++ パッケージには GNU C++ 標準ライブラリーが含まれています。これは ISO 14882 標準 C++ ライブラリーを実装するための進行中のプロジェクトです。
libstdc++ パッケージをインストールすると、リンクの依存関係が十分に満たされます (つまり、共有ライブラリーファイルのみ)。C++ 開発で使用可能なライブラリーおよびヘッダーファイルのすべてを活用するには、libstdc++-devel もインストールする必要があります。libstdc++-devel には、GNU 固有の標準テンプレートライブラリー (STL) の実装も含まれています。
libstdc++ に互換性ライブラリーは必要ありません。ただし、Red Hat Enterprise Linux 2 および 3 では、これは該当しません。Red Hat Enterprise Linux 2 では、compat-libstdc++-296 のインストールが必要になります。Red Hat Enterprise Linux 3 では、compat-libstdc++-33 のインストールが必要になります。どちらもデフォルトではインストールされていないので、別個に追加する必要があります。
3.3.2.1. GNU C++ 標準ライブラリー更新 リンクのコピーリンクがクリップボードにコピーされました!
- ISO C++ TR1 要素でサポートが強化。具体的には以下の通りです。
<tr1/array><tr1/complex><tr1/memory><tr1/functional><tr1/random><tr1/regex><tr1/tuple><tr1/type_traits><tr1/unordered_map><tr1/unordered_set><tr1/utility><tr1/cmath>
- 今後の ISO C++ 標準、C++0x の要素のサポート強化。以下の要素が含まれます。
<array><chrono><condition_variable><forward_list><functional><initalizer_list><mutex><random><ratio><regex><system_error><thread><tuple><type_traits><unordered_map><unordered_set>
-fvisibilityコマンドのサポート強化。- 以下の拡張子を追加。
__gnu_cxx::typelist__gnu_cxx::throw_allocator
libstdc++ の更新に関する詳細情報は、以下のドキュメントの 『C++ Runtime Library』 セクションを参照してください。
- 『GCC 4.2 Release Series Changes, New Features, and Fixes』: http://gcc.gnu.org/gcc-4.2/changes.html
- 『GCC 4.3 Release Series Changes, New Features, and Fixes』: http://gcc.gnu.org/gcc-4.3/changes.html
- 『GCC 4.4 Release Series Changes, New Features, and Fixes』: http://gcc.gnu.org/gcc-4.4/changes.html
3.3.2.2. GNU C++ 標準ライブラリードキュメント リンクのコピーリンクがクリップボードにコピーされました!
man を使用するには、libstdc++-docs パッケージをインストールします。これで、ライブラリーが提供するほとんどすべてのリソースの man ページ情報が提供されます。たとえば、vector コンテナについての情報を表示するには、その完全修飾コンポーネント名を使用します。
man std::vector
libstdc++-docs パッケージは、以下のディレクトリーで HTML 形式のマニュアルおよび参照情報を提供します。
file:///usr/share/doc/libstdc++-docs-version/html/spine.html
3.3.3. Boost リンクのコピーリンクがクリップボードにコピーされました!
boost パッケージには、ピア・レビューされた多くの無償の移植可能な C++ ソースライブラリーがあります。これらのライブラリーは、移植可能なファイルシステムおよび時間/日付抽象化、シリアル化、ユニットテスト、スレッド作成およびマルチプロセス同期化、解析、グラフ化、正規表現の操作など、その他多くのタスクに適しています。
boost パッケージのインストールは、リンクの依存関係を十分に満たします (つまり、共有ライブラリーファイルのみ)。C++ 開発で使用可能なライブラリーおよびヘッダーファイルのすべてを活用するには、boost-devel もインストールする必要があります。
boost は実際にはメタパッケージで、多くのライブラリーのサブパッケージが含まれています。これらのサブパッケージは個別にインストールして、より詳細なパッケージ間の依存関係の追跡を提供することもできます。メタパッケージには、以下のサブパッケージすべてが含まれます。
boost-date-timeboost-filesystemboost-graphboost-iostreamsboost-mathboost-program-optionsboost-pythonboost-regexboost-serializationboost-signalsboost-systemboost-testboost-threadboost-wave
boost-openmpiboost-openmpi-develboost-graph-openmpiboost-openmpi-python
boost-mpich2boost-mpich2-develboost-graph-mpich2boost-mpich2-python
boost-static パッケージが必要な静的ライブラリーをインストールします。スレッド対応と単一スレッドの両方のライブラリーが提供されます。
3.3.3.1. Boost 更新 リンクのコピーリンクがクリップボードにコピーされました!
boost パッケージのいくつかの側面が変更されています。上記のように、モノリシックな boost パッケージは、より小型の別個のサブパッケージで増強されてきました。これでユーザーは依存関係の管理がより広くできるようになり、Boost を使用するカスタムアプリケーションをパッケージする際はより小型のバイナリーパッケージが可能になっています。
mt 接尾辞が含まれています。
- Foreach
- Statechart
- TR1
- Typeof
- Xpressive
- Asio
- Bitmap
- Circular Buffer
- Function Types
- Fusion
- GIL
- Interprocess
- Intrusive
- Math/Special Functions
- Math/Statistical Distributions
- MPI
- System
- Accumulators
- Exception
- Units
- Unordered
- Proto
- Flyweight
- Scope Exit
- Swap
- Signals2
- Property Tree
3.3.3.2. Boost ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
boost-doc パッケージは、以下のディレクトリーで HTML 形式のマニュアルおよび参照情報を提供します。
file:///usr/share/doc/boost-doc-version/index.html
3.3.4. Qt リンクのコピーリンクがクリップボードにコピーされました!
qt パッケージは、GUI プログラム開発に使用される Qt (「cute」と発音) クロスプラットフォームアプリケーション開発フレームワークを提供します。人気のあるウィジェットツールキットというだけでなく、Qt はコンソールツールやサーバーといった非 GUI プログラムの開発にも使用されます。Qt は、Google Earth や KDE、Opera、OPIE、VoxOx、Skype、VLC メディアプレーヤー、VirtualBox といったすぐれたプロジェクトの開発に使用されました。これは、Nokiaの Qt 開発フレームワーク部門にが開発しました。この部門は、Qt の元々の作成者であるノルウェーの会社 Trolltech を Nokia が 2008 年 6 月 17 日に買収した後に組織されました。
3.3.4.1. Qt 更新 リンクのコピーリンクがクリップボードにコピーされました!
- 高度なユーザーエクスペリエンス
- 不透明度やドロップシャドウ、ぼかし、彩色、その他の類似の効果のオプション
- 複雑なコード管理の混乱なしにシンプルまたは複雑なアニメーションを作成
- ジェスチャーおよびマルチタッチのサポート
- 新たなプラットフォームのサポート
- Windows 7、Mac OSX 10.6、およびその他のデスクトッププラットフォームをサポート
- モバイル開発用の新たなサポート; Qt は、予定されている Maemo 6 プラットフォームに最適化されており、まもなく Maemo 5 にポートされます。さらに、Qt は今では S60 フレームワーク向けの統合で Symbian プラットフォームをサポートしています。
- QNX や VxWorks などのリアルタイムのオペレーティングシステム向けの新たなサポート
- (他のレンダリング更新に加えて) ハードウェアアクセラレータによるレンダリングの新たなサポートを加えたことによるパフォーマンスの改善。
- クロスプラットフォーム IDE の更新
3.3.4.2. Qt Creator リンクのコピーリンクがクリップボードにコピーされました!
- 高度な C++ コードエディター
- 統合 GUI レイアウトおよびフォームデザイナー
- プロジェクトおよびビルド管理ツール
- コンテキストを感知する統合ヘルプシステム
- 視覚デバッガー
- ラピッドコードナビゲーションツール
3.3.4.3. Qt ライブラリードキュメント リンクのコピーリンクがクリップボードにコピーされました!
qt-doc パフォーマンスは、/usr/share/doc/qt4/html/ にある HTML マニュアルおよびリファレンスを提供します。このパッケージは、『Qt Reference Documentation』 も提供し、これは Qt フレームワーク内での開発に絶好の出発点となります。
qt-demos や qt-examples からさらなるデモや例をインストールすることもできます。Qt フレームワークの機能の概要については、/usr/bin/qtdemo-qt4 (qt-demos が提供) を参照してください。
3.3.5. KDE 開発フレームワーク リンクのコピーリンクがクリップボードにコピーされました!
kdelibs-devel パッケージは、KDE ライブラリーを提供します。これは、Qt 上でビルドしてアプリケーション開発を容易にするフレームワークを提供します。KDE 開発フレームワークは、KDE デスクトップ環境にわたって一貫性を提供する手助けにもなります。
3.3.5.1. KDE4 アーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
- Plasma
- Plasma は KDE4 で KDesktop の代わりとなるものです。この実装は Qt Graphics View Framework に基づいており、これは Qt 4.2 で導入されました。Plasma についての詳細は、http://techbase.kde.org/Development/Architecture/KDE4/Plasma を参照してください。
- Sonnet
- Sonnet は、自動言語検出やプライマリ/バックアップ辞書、その他の便利な機能をサポートする多言語スペルチェックアプリケーションです。これは KDE4 で
kspell2に代わるものです。 - KIO
- KIO ライブラリーは、ネットワーク透過ファイル処理用のフレームワークを提供し、ユーザーはネットワーク透過プロトコルによるファイルアクセスが容易になります。また、標準ファイルダイアログの提供にも役立ちます。
- KJS/KHTML
- KJS and KHTML は、(konqueror のように) KDE4 にネイティブな異なるアプリケーションが使用する、本格的な JavaScript および HTML エンジンです。
- Solid
- Solid は、ハードウェアおよびネットワーク認識フレームワークで、これを使用することでハードウェア対話機能でアプリケーションを開発できます。その包括的 API が必要な抽象化を提供し、クロスプラットフォームアプリケーションの開発をサポートします。詳細情報については、http://techbase.kde.org/Development/Architecture/KDE4/Solid を参照してください。
- Phonon
- Phonon は、マルチメディア機能でアプリケーション開発をサポートするマルチメディアフレームワークです。KDE 内のメディア機能の使用を容易にします。詳細については、http://techbase.kde.org/Development/Architecture/KDE4/Phonon を参照してください。
- Telepathy
- Telepathy は、KDE4 内でのリアルタイムの通信および共同作業のフレームワークを提供します。主要機能は、KDE 内の異なるコンポーネント間の融合を高めることです。このプロジェクトに関する概要は、http://community.kde.org/Real-Time_Communication_and_Collaboration を参照してください。
- Akonadi
- Akonadi は、Parallel Infrastructure Management (PIM) コンポーネントの一元保存用のフレームワークを提供します。詳細は、http://techbase.kde.org/Development/Architecture/KDE4/Akonadi を参照してください。
- KDE4 内のオンラインヘルプ
- KDE4 には、アプリケーションにオンラインヘルプ機能を追加する Qt ベースの操作が容易なフレームワークもあります。この機能に含まれるのは、ツールヒントやホバーヘルプ情報、khelpcenter マニュアルなどです。KDE4 内のオンラインヘルプの概要については、http://techbase.kde.org/Development/Architecture/KDE4/Providing_Online_Help を参照してください。
- KXMLGUI
- KXMLGUI は、XML でユーザーインターフェース設計するためのフレームワークです。このフレームワークを使用すると、ソースコードを改訂することなく (開発者が定義する)「アクション」に基づいて UI 要素を定義することができます。詳細情報は、https://techbase.kde.org/Development/Architecture/KDE3/XMLGUI_Technologyを参照してください。
- Strigi
- Strigi は、多くのデスクトップ環境およびオペレーティングシステムに互換性のあるデスクトップ検索デーモンです。自身の jstream システムを使用することで深い階層にまでのファイルのインデックス化が可能になります。Strigi 開発の詳細情報は、http://www.vandenoever.info/software/strigi/を参照してください。
- KNewStuff2
- KNewStuff2 は、多くの KDE4 アプリケーションが使用する共同作業データ共有ライブラリーです。詳細情報は、http://techbase.kde.org/Projects/KNS2を参照してください。
3.3.5.2. kdelibs ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
kdelibs-apidocs パッケージは、/usr/share/doc/HTML/en/kdelibs4-apidocs/ で KDE 開発フレームワーク用の HTML ドキュメントを提供します。以下のリンクも KDE 関連のプログラミングタスクに関する詳細情報を提供します。
3.3.6. GNOME の電源管理 リンクのコピーリンクがクリップボードにコピーされました!
gnome-power-manager です。これは、Red Hat Enterprise Linux 5 で導入されており、GNOME デスクトップ環境下で完全かつ統合された電源管理のソリューションを提供します。Red Hat Enterprise Linux 6 では、hal のストレージ処理部分は udisks に、libgnomeprint スタックは gtk2 のプリントサポートに代わっています。
3.3.6.1. GNOME の電源管理バージョンガイド リンクのコピーリンクがクリップボードにコピーされました!
gnome-power-management が Red Hat Enterprise Linux のどのバージョンに同梱されているかを説明します。
| | Red Hat Enterprise Linux バージョン | ||
|---|---|---|---|
|
GNOME の電源管理のデスクトップコンポーネント
|
4
|
5
|
6
|
|
hal
|
0.4.2
|
0.5.8
|
0.5.14
|
|
udisks
|
該当なし
|
該当なし
|
1.0.1
|
|
glib2
|
2.4.7
|
2.12.3
|
2.22.5
|
|
gtk2
|
2.4.13
|
2.10.4
|
2.18.9
|
|
gnome-vfs2
|
2.8.2
|
2.16.2
|
2.24.2
|
|
libglade2
|
2.4.0
|
2.6.0
|
2.6.4
|
|
libgnomecanvas
|
2.8.0
|
2.14.0
|
2.26.0
|
|
gnome-desktop
|
2.8.0
|
2.16.0
|
2.28.2
|
|
gnome-media
|
2.8.0
|
2.16.1
|
2.29.91
|
|
gnome-python2
|
2.6.0
|
2.16.0
|
2.28.0
|
|
libgnome
|
2.8.0
|
2.16.0
|
2.28.0
|
|
libgnomeui
|
2.8.0
|
2.16.0
|
2.24.1
|
|
libgnomeprint22
|
2.8.0
|
2.12.1
|
該当なし
|
|
libgnomeprintui22
|
2.8.0
|
2.12.1
|
該当なし
|
|
gnome-session
|
2.8.0
|
2.16.0
|
2.28.0
|
|
gnome-power-manager
|
該当なし
|
2.16.0
|
2.28.3
|
|
gnome-applets
|
2.8.0
|
2.16.0
|
2.28.0
|
|
gnome-panel
|
2.8.1
|
2.16.1
|
2.30.2
|
3.3.6.2. glib 向けの API 変更 リンクのコピーリンクがクリップボードにコピーされました!
バージョン 2.4 とバージョン 2.12 間 (もしくは Red Hat Enterprise Linux 4 と Red Hat Enterprise Linux 5) での glib の違いは以下の通りです。
- GOption (コマンドラインオプション解析)
- GKeyFile (key/ini ファイル解析)
- GObject トグルリファレンス
- GMappedFile (マップラッパー)
- GSlice (高速メモリアロケータ)
- GBookmarkFile (ブックマークファイル解析)
- Base64 エンコーディングサポート
- s390 上のネイティブアトミックオプション
- 5 へのユニコードサポートの更新
- GObject 用のアトミックな参照カウント
バージョン 2.12 とバージョン 2.22 間 (または Red Hat Enterprise Linux 5 と Red Hat Enterprise Linux 6) での glib の相違点は以下の通りです。
- GSequence (バランスツリーとして実装されたリストデータ構造)
- GRegex (PCRE regex ラッパー)
- 単調クロックのサポート
- XDG ユーザーディレクトリーのサポート
- GIO (gnome-vfs の代わりとなる VFS ライブラリー)
- GChecksum (MD5 や SHA-256 などのハッシュアルゴリズムのサポート)
- GTest (テストフレームワーク)
- GIO におけるソケットおよびネットワーク IO のサポート
- GHashTable パフォーマンスの改善
- GMarkup パフォーマンスの改善
3.3.6.3. GTK+での API 変更 リンクのコピーリンクがクリップボードにコピーされました!
バージョン 2.4 とバージョン 2.10 間 (もしくは Red Hat Enterprise Linux 4 と Red Hat Enterprise Linux 5) での GTK+ の相違点は以下の通りです。
- GtkIconView
- GtkAboutDialog
- GtkCellView
- GtkFileChooserButton
- GtkMenuToolButton
- GtkAssistant
- GtkLinkButton
- GtkRecentChooser
- GtkCellRendererCombo
- GtkCellRendererProgress
- GtkCellRendererAccel
- GtkCellRendererSpin
- GtkStatusIcon
- 印刷のサポート
- メモ帳タブ DND サポート
- ラベル、進捗状況バー、ツリービューでの Ellipsisation サポート
- 回転したテキストのサポート
- Themability の改善
バージョン 2.10 とバージョン 2.18 間 (もしくは Red Hat Enterprise Linux 4 と Red Hat Enterprise Linux 5) での GTK+ の相違点は以下の通りです。
- GtkScaleButton
- GtkVolumeButton
- GtkInfoBar
- libglade に代わる GtkBuilder
- 新たなツールヒント API
- GtkMountOperation
- gtk_show_uri
- スケールマーク
- ラベルのリンク
- ランタイムフォント設定変更のサポート
- GIO の使用
3.3.7. NSS 共有データベース リンクのコピーリンクがクリップボードにコピーされました!
key3.db と cert8.db も key4.db と cert9.db と呼ばれる新たな SQL データベースで置換されています。これらの新規データベースは PKCS #11 トークンオブジェクトを保存します。これらは、現在 cert8.db および key3.db に保存されているものと同一のものです。
/etc/pki/nssdb に配置されており、ここではグローバルに信頼された CA 認証がすべてのアプリケーションでアクセス可能になります。rv = NSS_InitReadWrite("sql:/etc/pki/nssdb"); コマンドは、アプリケーション用に NSS を初期化します。アプリケーションを root 権限で実行中の場合は、システムワイドのデータベースが読み込みおよび書き込みで利用可能になります。しかし、アプリケーションが通常のユーザー権限で実行中の場合は、読み込み可能のみとなります。
3.3.7.1. 後方互換性 リンクのコピーリンクがクリップボードにコピーされました!
3.3.7.2. NSS 共有データベース のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
3.3.8. Python リンクのコピーリンクがクリップボードにコピーされました!
python パッケージは、Python プログラミング言語のサポートを追加します。このパッケージは、基本的な Python プログラムのランタイムサポートの有効化に必要なオブジェクトとキャッシュバイトコードファイルを提供します。また、python インタープリターと pydoc ドキュメントツールも含まれています。python-devel パッケージには、Python 拡張の開発に必要なライブラリーおよびヘッダーファイルが含まれています。
python 関連パッケージも同梱されています。慣習として、これらパッケージの名前には、python 接頭辞もしくは接尾辞が付いています。このようなパッケージは、ライブラリの拡張機能か既存ライブラリーへの Python バインディングのどちらかです。例えば、dbus-python は D-Bus 用の Python 言語バインディングです。
*.pyc/*.pyo ファイル) とコンパイルされた拡張モジュール (*.so ファイル) の両方が Python 2.4 (Red Hat Enterprise Linux 5 で使用) と Python 2.6 (Red Hat Enterprise Linux 6 で使用) の間で互換性がないことに注意してください。このため、Red Hat Enterprise Linux の一部でない拡張モジュールは再構築する必要があります。
3.3.8.1. Python 更新 リンクのコピーリンクがクリップボードにコピーされました!
- What's New in Python 2.5: http://docs.python.org/whatsnew/2.5.html
- What's New in Python 2.6: http://docs.python.org/whatsnew/2.6.html
3.3.8.2. Python ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
man python を参照してください。また、python-docs をインストールすることもできます。これは、以下の場所で HTML マニュアルとリファレンスを提供します。
file:///usr/share/doc/python-docs-version/html/index.html
pydoc component_name を使用してください。たとえば、pydoc math は math Python モジュールについて以下の情報を表示します。
3.3.9. Java リンクのコピーリンクがクリップボードにコピーされました!
java-1.6.0-openjdk パッケージは、Java プログラミング言語のサポートを追加します。このパッケージは java インタープリターを提供します。java-1.6.0-openjdk-devel パッケージには、Java 拡張の開発に必要なライブラリーおよびヘッダーファイルのほか、javac コンパイラーが含まれています。
java 関連パッケージも同梱されています。慣習として、これらパッケージの名前には、java 接頭辞もしくは接尾辞が付いています。
3.3.9.1. Java ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
man java を参照してください。関連のユーティリティーにはそれぞれ、man ページがあるものもあります。
javadoc 接尾辞が付いています (たとえば、dbus-java-javadoc)。
3.3.10. Ruby リンクのコピーリンクがクリップボードにコピーされました!
ruby パッケージは、Ruby インタープリターを提供し、Ruby プログラミング言語のサポートを追加します。ruby-devel パッケージには、Ruby 拡張開発に必要なライブラリーおよびヘッダーファイルが含まれています。
ruby 関連パッケージも同梱されています。慣習として、これらパッケージの名前には、ruby もしくは rubygem の接頭辞または接尾辞が付いています。このようなパッケージは、ライブラリーの拡張機能か既存ライブラリーへの Ruby バインディングのどちらかです。
ruby 関連パッケージの例は以下のとおりです。
- ruby-flexmock
- rubygem-flexmock
- rubygems
- ruby-irb
- ruby-libguestfs
- ruby-libs
- ruby-qpid
- ruby-rdoc
- ruby-ri
- ruby-saslwrapper
- ruby-static
- ruby-tcltk
file:///usr/share/doc/ruby-version/NEWSfile:///usr/share/doc/ruby-version/NEWS-version
3.3.10.1. Ruby ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
man ruby を参照してください。また、ruby-docs をインストールすることもできます。これは、以下の場所で HTML マニュアルとリファレンスを提供します。
file:///usr/share/doc/ruby-docs-version/
3.3.11. Perl リンクのコピーリンクがクリップボードにコピーされました!
perl パッケージは、Perl プログラミング言語のサポートを追加します。このパッケージは、Perl コアモジュール、Perl Language Interpreter (Perl 言語インタープリター)、PerlDoc ツールを提供します。
perl-* 接頭辞が付いています。これらのモジュールは、スタンドアロンのアプリケーションや言語拡張、Perl ライブラリー、外部ライブラリーバインディングを提供します。
3.3.11.1. Perl 更新 リンクのコピーリンクがクリップボードにコピーされました!
- Perl 5.12 更新
- Perl 5.12 には以下の更新があります。
- Perl はユニコード標準により適合します。
- 実験的な API により、Perl を「プラグ可能」なキーワードおよび構文で拡張することができます。
- Perl は 「2038 年」の問題以降も正確な時間を維持できます。
- パッケージのバージョン番号は、直接「パッケージ」ステートメントに指定することができます。
- Perl はデフォルトで、廃止予定の機能の使用をユーザーに警告します。
Perl 5.12 delta は、http://perldoc.perl.org/perl5120delta.html でアクセス可能です。 - Perl 5.14 更新
- Perl 5.14 には以下の更新があります。
- ユニコード 6.0 をサポート
- IPv6 のサポートが改善
- CPAN クライアントの自動設定の容易化
- 新たな /r フラグが s/// 置換を非破壊的なものにします。
- 新規の正規表現フラグが、マッチしたストリングを ASCII またはユニコードとして扱うかを管理します。
- 新たな
package Foo { }構文 - 以前のリリースに比べてメモリおよび CPU 使用量が少ない。
- 多くのバグを修正
Perl 5.14 delta は http://perldoc.perl.org/perl5140delta.html でアクセスできます。 - Perl 5.16 更新
- Perl 5.14 には以下の更新があります。
- Unicode 6.1 のサポート
$$変数が書き込み可能。- デバッガーの改善
- Unicode データベースファイルへの直接アクセスは廃止予定。代わりに Unicode::UCD を使用。
- Version::Requirements が廃止予定。代わりに CPAN::Meta::Requirements を使用。
- 多くの perl4 ライブラリーを削除:
- abbrev.pl
- assert.pl
- bigfloat.pl
- bigint.pl
- bigrat.pl
- cacheout.pl
- complete.pl
- ctime.pl
- dotsh.pl
- exceptions.pl
- fastcwd.pl
- flush.pl
- getcwd.pl
- getopt.pl
- getopts.pl
- hostname.pl
- importenv.pl
- lib/find{,depth}.pl
- look.pl
- newgetopt.pl
- open2.pl
- open3.pl
- pwd.pl
- hellwords.pl
- stat.pl
- tainted.pl
- termcap.pl
- timelocal.pl
Perl 5.16 delta は http://perldoc.perl.org/perl5160delta.html でアクセス可能です。
3.3.11.2. インストール リンクのコピーリンクがクリップボードにコピーされました!
- 公式の Red Hat RPM
- 公式モジュールパッケージは、Red Hat Enterprise Linux リポジトリーから
yumまたはrpmでインストールできます。これらは/usr/share/perl5と、32 ビットアーキテクチャーの場合は/usr/lib/perl5に、64 ビットアーキテクチャーの場合は/usr/lib64/perl5にインストールされます。 - CPAN からのモジュール
- perl-CPAN パッケージが提供する
cpanツールを使用して CPAN Web サイトから直接モジュールをインストールします。これは/usr/local/share/perl5と、32 ビットアーキテクチャーの場合は/usr/local/lib/perl5に、64 ビットアーキテクチャーの場合は/usr/local/lib64/perl5にインストールされます。 - サードパーティのモジュールパッケージ
- サードパーティのモジュールは
/usr/share/perl5/vendor_perlと、32 ビットアーキテクチャーの場合は/usr/lib/perl5/vendor_perlに、64 ビットアーキテクチャーの場合は/usr/lib64/perl5/vendor_perlにインストールされます。 - カスタムのモジュールパッケージ/手動でインストールするモジュール
- これらのモジュールは、サードパーティの場合と同じディレクトリーに置かれます。つまり、
/usr/share/perl5/vendor_perlと、32 ビットアーキテクチャーの場合は/usr/lib/perl5/vendor_perlに、64 ビットアーキテクチャーの場合は/usr/lib64/perl5/vendor_perlにインストールされます。
警告
/usr/share/man ディレクトリーで競合が発生する場合があります。
3.3.11.3. Perl のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
perldoc ツールは、言語およびコアモジュールに関するドキュメントを提供します。モジュールについてのさらなる情報は、perldoc module_name を使用してください。たとえば、perldoc CGI は CGI コアモジュールについて以下の情報を表示します。
perldoc -f function_name を使用してください。たとえば、perldoc -f split は split 機能について以下の情報を表示します。
第4章 コンパイルおよびビルド
リンクのコピーリンクがクリップボードにコピーされました!
4.1. GNU コンパイラーコレクション (GCC) リンクのコピーリンクがクリップボードにコピーされました!
gcc や g++ など)、ランタイムライブラリー (libgcc、libstdc++、libgfortran、libgomp など)、その他のユーティリティーが含まれます。
4.1.1. GCC ステータスおよび機能 リンクのコピーリンクがクリップボードにコピーされました!
- inliner、実行されないコードの除外ルーチン、コンパイル時間、メモリ使用コードが改善されました。このリリースでは、新たなレジスタアロケータ、指示スケジューラ、ソフトウェアパイプラインの機能があります。
- OpenMP のバージョン 3.0 仕様が C、C++、Fortran コンパイラー対応となっています。
- 予定されている ISO C++ 標準 (C++0x) の体験サポートが含まれています。これには、自動/inline ネームスペース、文字タイプ、スコープ列挙のサポートがあります。これを有効にするには、コンパイラーオプションの
-std=c++0x(GNU 拡張機能を無効化) か-std=gnu++0xを使用します。C++0x の改善点の詳細リストについては、以下のリンク先を参照してください。 - GCC は Variable Tracking at Assignments (VTA) インフラストラクチャーを組み込むようになりました。これにより、最適化中の GCC の変数追跡機能が向上され、GNU Project Debugger や SystemTap、その他のツール用に作成されるデバッグ情報 (つまり、DWARF) が改善されます。VTA の概要については「Variable Tracking at Assignments」を参照してください。VTA を使うと、以前の GCC リリースと比べてはるかに最適化されたコードのデバッグがうまく実行でき、優れたデバッグ体験を提供するために -O0 でコンパイルする必要がなくなります。
- Fortran 2003 のサポートが延長され、Fortran 2008 がサポート対象となりました。
- 『Updates in the 4.2 Series』: http://gcc.gnu.org/gcc-4.2/changes.html
- 『Updates in the 4.3 Series』: http://gcc.gnu.org/gcc-4.3/changes.html
- 『Updates in the 4.4 Series』: http://gcc.gnu.org/gcc-4.4/changes.html
- 最適化された C++ コードのデバッグ用の DWARF3 デバッグの改善
- Fortran 最適化の改善
- ix86、Intel 64 および AMD64、s390 の指示の長さ情報の精度改善
- Intel Atom のサポート
- POWER7 のサポート
- C++ raw 文字列サポート、u/U/u8 文字列リテラルサポート
4.1.2. 言語の互換性 リンクのコピーリンクがクリップボードにコピーされました!
- 呼び出し規約。これは、引数の関数への渡され方と関数からの結果の返し方を指定します。
- レジスタ使用量規約。これはプロセッサーレジスタの割り当ておよび使用方法を指定します。
- オブジェクトファイル形式。これは、バイナリーオブジェクトコードの表示方法を指定します。
- サイズ、レイアウト、データ配置のタイプ。これは、メモリでのデータの配置方法を指定します。
- ランタイム環境が提供するインターフェース。記録されたセマンティクスがあるバージョンから別のバージョンで変更されない部分では、これらは利用可能である必要があり、常に同じ名前を使う必要があります。
- 名前のマングル化およびデマングル化
- 例外の生成および伝達
- ランタイムタイプ情報のフォーマット
- コンストラクターおよびデストラクター
- クラスおよび派生クラスのレイアウト、配置、パディング
- 仮想テーブルのレイアウトおよび配置といった仮想機能実装の詳細
以下は、Red Hat Enterprise Linux 6 と 5 のツールチェーン間での既知の非互換性です。
- 柔軟性のある配列メンバーの構造体を値でパス/返却すると、Intel 64 および AMD64 で変更する場合がある。
- long double メンバーのユニオンを値でパス/返却すると、Intel 64 および AMD64 で変更する場合がある。
- 複雑な浮動メンバーの構造体を値でパス/返却すると、Intel 64 および AMD64 で変更する場合がある。
-mavxを使用する場合、x86、Intel 64、AMD64 のプラットフォームでの 256 ビットのベクターのパスが変更される。- _Decimal{32,64,128} タイプおよびいくつかのターゲットで値ごとのものを含む総計のパスに複数の変更がある。
- パックされた char ビットフィールドの圧縮が変更されるケースがある。
以下は、Red Hat Enterprise Linux 5 と 4 のツールチェーン間での既知の非互換性です。
- C++ ABI が指定するライブラリーインターフェースで、機能スコープの静的変数のスレッドセーフな初期化に変更があります。
- Intel 64 および AMD64 では、データセグメントが 4GB を超えるアプリケーション構築用の中型モデルは、当時の最新 ABI ドラフトに一致するように再設計されました。ABI の変更が中型モデルのオブジェクト間での非互換性につながっています。
-Wabi は、これらの構造文がソースコードのどこに現れるかを示す診断を得るために使用できますが、すべてのケースを捕捉するわけではありません。このフラグは、ベンダー中立の C++ ABI と互換性がないと分かっているコードをコンパイラー生成する際はいつでも警告するので、C++ コードでは特に便利です。
-fabi-version=1 オプションを使用していました。この方法は、推奨されません。この方法で作成されるオブジェクトは、最新の安定的な ABI に適合するオブジェクトと区別がつかず、異なる ABI の間で (誤って) リンクされる可能性があります。特に、新しいコンパイラーを使ってコードを作成し、これを Red Hat Enterprise Linux 4 より前のツールで構築された古いライブラリーにリンクする場合などです。
警告
4.1.3. オブジェクトの互換性と相互運用性 リンクのコピーリンクがクリップボードにコピーされました!
ld (binutils パッケージの一部として配布) や動的ローダー (glibc パッケージの一部として配布される ld.so) などのツールの変更や新機能は、コンパイラーが作成するオブジェクトファイルをわずかに変更する可能性があります。これらの変更では、Red Hat Enterprise Linux の以前のリリースから最新リリースに移動するオブジェクトファイルは機能を失い、ランタイムで異なる動作をし、相互運用性が減少する可能性があることになります。既知の問題分野は以下のとおりです。
ld--build-idRed Hat Enterprise Linux 6 では、これはデフォルトでldに渡されます。一方、Red Hat Enterprise Linux 5 では、ldは認識されません。as.cfi_sectionsサポートRed Hat Enterprise Linux 6 では、このディレクティブにより、.cfi*ディレクティブから.debug_frameか.eh_frame、または両方を省略できるようになります。Red Hat Enterprise Linux 5 で省略可能なのは、.eh_frameのみです。as、ld、ld.so、gdb、STB_GNU_UNIQUE、%gnu_unique_symbolサポートRed Hat Enterprise Linux 6 では、より多くのデバッグ情報が生成されてオブジェクトファイルに保存されます。この情報は、DWARF標準で詳述されている新機能と標準化されていない新たな拡張機能にも依存しています。Red Hat Enterprise Linux 5 では、asやld、gdb、objdump、readelfといったツールはこの新情報に対応できていない可能性があり、新規ツールが作成したオブジェクトとの相互運用に失敗する可能性があります。また、Red Hat Enterprise Linux 5 で作成されたオブジェクトファイルは、これらの新機能に対応していません。これらのオブジェクトファイルは Red Hat Enterprise Linux 6 ツールでは最適でない方法で処理される可能性があります。このようにデバッグの強化情報が増えたことで、システムライブラリーと共に出荷される debuginfo パッケージがインストールされていれば、システムライブラリーへの有益なソースレベルでのデバッグが可能になります。debuginfo パッケージに関する詳細情報は、「Debuginfo パッケージのインストール」を参照してください。
prelink のポータブルな使用を妨げる可能性があります。
4.1.4. 後方互換性パッケージ リンクのコピーリンクがクリップボードにコピーされました!
注記
compat-gcc-34compat-gcc-34-c++compat-gcc-34-g77
compat-libgfortran-41
4.1.5. Red Hat Enterprise Linux 5 での Red Hat Enterprise Linux 6 コンパイラー機能のプレビュー リンクのコピーリンクがクリップボードにコピーされました!
gcc44 が含まれています。これは、Red Hat Enterprise Linux 6 コンパイラーのバックポートで、Red Hat Enterprise Linux 5 を実行するユーザーが Red Hat Enterprise Linux 6 コンパイラーでコードをコンパイルして新機能や最適化を体験してから、次のメジャーリリースの際にシステムをアップグレードすることができます。作成されたバイナリーーは Red Hat Enterprise Linux 6 と前方互換があるため、Red Hat Enterprise Linux 5 上で gcc44 を使用してコンパイルして、Red Hat Enterprise Linux 5、Red Hat Enterprise Linux 6 以降で実行するkとおができます。
gcc44 コンパイラーは、Red Hat Enterprise Linux 6 と同梱の GCC 4.4.x と適度に調和され、移行を容易にします。ただし、最新機能を使用するには、開発に Red Hat Enterprise Linux 6 を使用することが推奨されます。gcc44 は変換プロセスの支援としてのみ提供されています。
4.1.6. GCC の実行 リンクのコピーリンクがクリップボードにコピーされました!
binutils と gcc をインストールします。こられでいくつかの依存関係もインストールされます。
gcc コマンドで動作します。これがコンパイラーの主要なドライバーです。コマンドラインから、ソースファイルの前処理またはコンパイル、オブジェクトファイルおよびライブラリーのリンク、またはこれらの組み合わせを実行できます。デフォルトでは、gcc が提供されている libgcc ライブラリー内の詳細とリンクの処理をします。
CDT の一部として Eclipse IDE にも統合されます。これにより多くの利点がもたらされます。グラフィカルインターフェースと完全統合型の環境を好む開発者の場合は特にそうです。
4.1.6.1. シンプルな C の使用 リンクのコピーリンクがクリップボードにコピーされました!
手順4.1 'Hello World' C プログラムのコンパイル
- 次のコマンドを使用して hello.c を実行可能ファイルにコンパイルします。
gcc hello.c -o hello作成されるバイナリーhelloがhello.cと同じディレクトリーにあることを確認します。 helloバイナリー、つまりhelloを実行します。
4.1.6.2. シンプルな C++ の使用 リンクのコピーリンクがクリップボードにコピーされました!
手順4.2 'Hello World' C++ プログラムのコンパイル
- 次のコマンドを使用して hello.cc を実行可能ファイルにコンパイルします。
g++ hello.cc -o hello生成されるバイナリーhelloがhello.ccと同じディレクトリーにあることを確認します。 helloバイナリー、つまりhelloを実行します。
4.1.6.3. シンプルなマルチファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
手順4.3 マルチソースファイルによるプログラムのコンパイル
- 次のコマンドを使用して one.c を実行可能ファイルにコンパイルします。
gcc -c one.c -o one.o生成されるバイナリーone.oがone.cと同じディレクトリーにあることを確認します。 - 次のコマンドを使用して two.c を実行可能ファイルにコンパイルします。
gcc -c two.c -o two.o生成されるバイナリーtwo.oがtwo.cと同じディレクトリーにあることを確認します。 - 次のコマンドを使用して
one.oおよびtwo.oを単一の実行可能ファイルにコンパイルします。gcc one.o two.o -o hello生成されるバイナリーhelloがone.oおよびtwo.oと同じディレクトリーにあることを確認します。 helloバイナリー、つまりhelloを実行します。
4.1.6.4. 推奨される最適化オプション リンクのコピーリンクがクリップボードにコピーされました!
指示のスケジューリングに正しいアーキテクチャーを選択することは、非常に重要です。デフォルトでは、GCC はほとんどの一般的なプロセッサーに最適化されたコードを作成しますが、コードが動作する CPU が分かっている場合は、それに対応する指示スケジューリングを最適化する -mtune= オプションと、指示選択を最適化する -march= オプションを使用すべきです。
-mtune= は、指示スケジューリングを最適化して、ABI および利用可能な指示セットを除きすべてをチューニングすることでアーキテクチャーに適合させます。このオプションは特定の指示を選択しませんが、その代わりにプログラムのチューニングを行い、特定のアーキテクチャー上での実行を最適化します。たとえば、大体において Intel Core2 CPU を使うのであれば、-mtune=core2 を選択します。選択が間違っている場合は、プログラムは実行しますが、そのアーキテクチャー上での最善の動作にはなりません。そのプログラムが実行する可能性の最も高いアーキテクチャーを常に選択するようにします。
-march= は、指示選択を最適化します。間違った選択をするとプログラムが失敗するので、正確な選択が重要になります。このオプションは、コード生成時に使用される指示セットを選択します。たとえば、プログラムが AMD K8 コアベースの CPU で実行されるのであれば、-march=k8 を選択します。このオプションでアーキテクチャーを指定することで、-mtune= が暗示されます。
-mtune= と -march= コマンドは、異なるコード生成 (クロスコンパイル) のためではなく、あるアーキテクチャー内でのチューニングと指示選択のみに使用するようにします。たとえば、Intel 64 や AMD64 プラットフォームからの PowerPC コード生成には使用しません。
-march= および -mtune= の両方で利用可能なオプションの完全一覧については、GCC 4.4.4 Manual: Hardware Models and Configurations のリンクから取得可能な GCC ドキュメントを参照してください。
コンパイラーフラグ -O2 は、高速コード生成のすぐれた穏健なオプションです。作成されるコードサイズが大き過ぎない場合に、最適化されたコードが作成されます。最善のものがわからない場合は、このオプションを使用してください。
-O3 が推奨されます。このオプションはやや大きめのコードを作成しますが、関数のインラインの頻度が高いため、実行速度が速くなります。浮動小数点集約型コードではこれが理想的なものになります。
-Os です。このフラグはサイズの最適化も行い、より小さいフットプリントがコードのローカリティを増やし、キャッシュミスを減らすような状況で高速コードを作成します。
-frecord-gcc-switches を使用します。これにより、オブジェクトをオブジェクト自体にビルドする際に使用されるオプションが記録されます。オブジェクトがビルドされた後で、そのビルドに使用されたオプションセットを見つけ出します。このオプションセットはその後、オブジェクト内の .GCC.command.line と呼ばれるセクションに記録され、以下のように確認可能になります。
4.1.6.5. プロファイルフィードバックを使用した最適化ヒューリスティックのチューニング リンクのコピーリンクがクリップボードにコピーされました!
- インライン
- 分岐予測
- 指示のスケジューリング
- 手順間の不断の伝達
- ホットもしくはコールド機能の区別
手順4.4 プロファイルフィードバックの使用
- プロファイル情報を作成するには、アプリケーションを
-fprofile-generateでコンパイルしてインストルメント化する必要があります。 - アプリケーションを実行してプロファイル情報を蓄積し、保存します。
- アプリケーションを
-fprofile-useで再コンパイルします。
手順4.5 プロファイリングフィードバックを使ったプログラムのコンパイル
source.cをコンパイルし、プロファイリングインストルメンテーションを含めます。gcc source.c -fprofile-generate -O2 -o executableexecutableを実行してプロファイリング情報を収集します。./executable- ステップ 1 で収集したプロファイリング情報を使って
source.cを再コンパイル、最適化します。gcc source.c -fprofile-use -O2 -o executable
-fprofile-dir=DIR でコンパイルします。この DIR は作成先となるディレクトリーです。
警告
4.1.6.6. 64 ビットホスト上での 32 ビットコンパイラーの使用 リンクのコピーリンクがクリップボードにコピーされました!
glibc、libgcc、libstdc++ のサポート用ライブラリーを含める必要があります。Intel 64 および AMD64 では、以下のコマンドを実行します。
yum install glibc-devel.i686 libgcc.i686 libstdc++-devel.i686
db4-devel を使用する場合、このライブラリーの 32 ビットバージョンは以下のコマンドでインストールできます。
yum install db4-devel.i686
注記
x86-64 ではなく) x86 プラットフォーム上の .i686 接尾辞は、当該パッケージの 32 ビットバージョンを指定します。PowerPC アーキテクチャーの場合、接尾辞は (ppc64 ではなく) ppc になります。
-m32 オプションをコンパイラーとリンカーにパスして 32 ビットの実行可能ファイルが作成できます。64 ビットシステム上にサポート用の 32 ビットライブラリーがインストールされていれば、この実行可能ファイルは 32 ビットシステムと 64 ビットシステムの両方で実行できることになります。
手順4.6 64 ビットホスト上での 32 ビットプログラムのコンパイル
- 64 ビットシステム上では、以下のコマンドで
hello.cを 64 ビットの実行可能ファイルにコンパイルします。gcc hello.c -o hello64 - 作成された実行可能ファイルが 64 ビットのバイナリーであることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 64 ビットの実行可能ファイル上では、コマンドfileの出力にELF 64-bitが含まれ、lddはリンクされたメイン C ライブラリーとして/lib64/libc.so.6をリスト表示します。 - 64 ビットシステム上では、以下のコマンドで
hello.cを 32 ビットの実行可能ファイルにコンパイルします。gcc -m32 hello.c -o hello32 - 作成された実行可能ファイルが 32 ビットのバイナリーであることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 32 ビットの実行可能ファイル上では、コマンドfileの出力にELF 32-bitが含まれ、lddはリンクされたメイン C ライブラリとして/lib/libc.so.6をリスト表示します。
gcc -m32 hello32.c -o hello32 /usr/bin/ld: crt1.o: No such file: No such file or directory collect2: ld returned 1 exit status
$ gcc -m32 hello32.c -o hello32
/usr/bin/ld: crt1.o: No such file: No such file or directory
collect2: ld returned 1 exit status
-m32 でビルドしても、プログラムを適応もしくは変換して 32/64 ビットの互換性から発生する問題の解決にはならないことに注意してください。移動可能なコードの書き込みと、32 ビットから 64 ビットへの変換に関するヒントは、Proceedings of the 2003 GCC Developers Summit の Porting to 64-bit GNU/Linux Systems を参照してください。
4.1.7. GCC のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
cpp、gcc、g++、gcj、gfortran の各コマンドの man ページを参照してください。
4.2. 分散コンパイル リンクのコピーリンクがクリップボードにコピーされました!
distcc パッケージにより提供されます。
distccdistcc-server
distcc および distccd の man ページを参照してください。以下のリンクでも distcc の開発についての詳細情報を提供しています。
4.3. Autotools リンクのコピーリンクがクリップボードにコピーされました!
configure スクリプトを作成する際の手助けとなります。このスクリプトはビルド前に実行され、アプリケーションのビルドに必要なトップレベルの Makefile を作成します。configure スクリプトは、現行システム上でテストを実行し、追加ファイルを作成し、ビルダーが提供するパラメーターのように他のディレクティブを実行することができます。
- autoconf
- 入力ファイル (例:
configure.ac) からconfigureスクリプトを生成します。 - automake
- 特定システム上でプロジェクト用の
Makefileを作成します。 - autoscan
- 予備入力ファイル (つまり、
configure.scan) を作成します。これは、autoconfが使用する最終的なconfigure.acを作成するために編集可能なものです。
Development Tools グループパッケージの一部です。このグループパッケージをインストールして Autotools スイート全体をインストールすることも可能ですし、または yum を使用してスイートの好みのツールのみをインストールすることもできます。
4.3.1. Eclipse 用の Autotools プラグイン リンクのコピーリンクがクリップボードにコピーされました!
- 空のプロジェクト
- "hello world" アプリケーション
git や mercurial は Eclipse に統合されません。このため、git リポジトリーを使用する Autotools プロジェクトは、Eclipse のワークスペース 外 でチェックアウトする必要があります。その後に Eclipse 内のそのようなプロジェクトのソースの場所を特定することができます。すべてのリポジトリー操作 (コミット、更新など) は、コマンドラインで行います。
4.3.2. 設定スクリプト リンクのコピーリンクがクリップボードにコピーされました!
configure スクリプトの作成です。このスクリプトは、ツール、入力ファイル、その他の機能がプロジェクトの構築に使用できるようにシステムをテストします。[2]。configure スクリプトは Makefile を生成します。これは、システム設定に基づいて make ツールがプロジェクトをビルドできるようにします。
configure スクリプトを作成するには、ます入力ファイルを作成します。そして、それを Autotools ユーティリティーにフィードして configure スクリプトを作成します。この入力ファイルは通常 configure.ac または Makefile.am です。前者は通常 autoconf が処理を行い、後者は automake にフィードされます。
Makefile.am 入力ファイルが利用可能な場合は、automake ユーティリティーが Makefile テンプレート (つまり、Makefile. in) を作成します。これは、設定時に収集された情報を参照する場合があります。たとえば、Makefile は特定のライブラリーにリンクする必要がある場合がありますが、これはそのライブラリーがすでにインストールされている 場合のみ です。configure スクリプトが実行されると、automake が Makefile. in テンプレートを使用して Makefile を作成します。
configure.ac ファイルが利用可能な場合は、configure.ac が起動したマクロに基づいて autoconf が自動的に configure スクリプトを作成します。予備の configure.ac を作成するには、autoscan ユーティリティーを使用してファイルを適時編集します。
4.3.3. Autotools のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
autoconf、automake、autoscan および Autotools スイートに含まれるほとんどのツールの man ページが含まれています。また、Autotools コミュニティーは autoconf および automake に関する幅広いドキュメントを以下の Web サイトで提供しています。
hello プログラムでの Autotools の使用を説明しています。
4.4. Eclipse Built-in Specfile Editor リンクのコピーリンクがクリップボードにコピーされました!
.spec ファイルを管理する際に役立つ機能を提供します。このプラグインを使うと、ユーザーは .spec ファイルの編集の際に、オートコンプリート機能やハイライト、ファイルのハイパーリンク、折り曲げなどのいくつかの Eclipse GUI 機能を活用することができます。
rpmlint ツールを Eclipse インターフェースに統合します。rpmlint はコマンドラインツールで、開発者が一般的な RPM パッケージエラーを検出する際に役立ちます。Eclipse インターフェースが提供する豊富な仮想化は、rpmlint がレポートするミスを開発者が迅速に検出、表示、訂正する際に役立ちます。
eclipse-rpm-editor パッケージで提供されます。このプラグインについての詳細は、Eclipse の 『Specfile Editor User Guide』 を参照してください。
4.5. Eclipse の CDT リンクのコピーリンクがクリップボードにコピーされました!
- Managed Make プロジェクト
- Standard Make プロジェクト
- Autotools プロジェクト
4.5.1. Managed Make プロジェクト リンクのコピーリンクがクリップボードにコピーされました!
.c や .h、.S) やファイル名で指定されている 1 つ以上の入力タイプに関連付けられています。このツールには開発者がカスタマイズできるパラメーター設定があり、各ツールには作成される出力タイプがあります。また、関連付けられるコマンドもしくはバイナリ実行可能ファイルがあり、これは複数のツールで重複する場合があります。例えば、C コンパイラーとリンカーは両方とも GCC を使用できますが、コンパイラーとリンカーのツールではそれぞれ出入力タイプが異なり、開発者に提示される設定も異なります。ツール設定をカスタマイズするには、 > > に移動します。ツールチェーン自体のカスタマイズは、 > > で使用ツールを追加、削除、置き換えることで可能です。
4.5.2. Standard Make プロジェクト リンクのコピーリンクがクリップボードにコピーされました!
.c:.o。これは、接尾辞 .c の付いたファイルを接尾辞 .o の付いたファイルに処理する方法を提示)、これは必要ありません。
all で、プロジェクト消去用のデフォルトの make ターゲットは clean です。また、ユーザーが Makefile で見つかった他のターゲットをビルドすることもできます。これを行うには、Makefile Target ダイアログを使用して既存のものを実行もしくはビルドするためのターゲットを作成します。Makefile Target ダイアログでは、makefile で見つかった複数のターゲットをグループ化する仮のターゲットを特定の順番で作成することもできます。特定の作成およびビルドダイアログにアクセスするにはそれぞれ、 > > もしくは > > に移動します。別の方法では、プロジェクトの resources で をして オプションを選択し、 または にアクセスします。
4.5.3. Autotools プロジェクト リンクのコピーリンクがクリップボードにコピーされました!
4.6. build-id バイナリーの一意の ID リンクのコピーリンクがクリップボードにコピーされました!
4.7. Software Collections および scl-utils リンクのコピーリンクがクリップボードにコピーされました!
root として以下を入力して scl-utils パッケージをインストールします。
yum install scl-utils
~]# yum install scl-utils
scl action software_collection_1 software_collection_2 command
scl action software_collection_1 software_collection_2 command
例4.1 アプリケーションの直接実行する
--version オプションで Perl を直接実行するには、以下のコマンドを実行します。
scl enable software_collection_1 'perl --version'
scl enable software_collection_1 'perl --version'
例4.2 複数の Software Collection を有効にして、シェルを実行する
scl enable software_collection_1 software_collection_2 bash
scl enable software_collection_1 software_collection_2 bash
例4.3 ファイルに保存されたコマンドを実行する
cat cmd | scl enable software_collection_1 -
cat cmd | scl enable software_collection_1 -
cmd ファイルに保存されているコマンドを実行します。
scl-utils に関する詳細情報は、Red Hat Software Collections 1.2 Beta Packaging Guide を参照してください。
第5章 デバッグ リンクのコピーリンクがクリップボードにコピーされました!
5.1. ELF の実行可能バイナリー リンクのコピーリンクがクリップボードにコピーされました!
gcc -g は gcc -gdwarf-3 と同等)。DWARF debuginfo には以下が含まれます。
- バイナリーのターゲットアドレスを含む、コンパイルされた関数および変数すべての名前
- ソース行番号を含む、コンパイルに使用されるソースファイル
- ローカル変数の場所
重要
gcc -g のコマンドは gcc -g2 と同一です。マクロ情報をレベル 3 に変更するには、gcc -g3 を使用します。
readelf -WS file を使用します。
|
バイナリーの状態
|
コマンド
|
注意事項
|
|---|---|---|
|
Stripped (削除)
| strip file
または
gcc -s -o file
|
共有ライブラリーとのランタイムリンクに必要なシンボルのみが表示されます。
使用される ELF セクション:
.dynsym
|
|
ELF シンボル
| gcc -o file
|
関数および変数の名前のみが表示され、ソースファイルのバインディングおよびタイプはありません。
使用される ELF セクション:
.symtab
|
|
DWARF debuginfo (マクロあり)
| gcc -g -o file
|
タイプも含め、ソースファイル名および行番号は認識されます。
使用される ELF セクション:
.debug_*
|
|
DWARF debuginfo (マクロあり)
| gcc -g3 -o file
| gcc -g と似ていますが、マクロが GDB に認識されます。
使用される ELF セクション:
.debug_macro
|
注記
gcc -g とその変数を使用します。
gcc -rdynamic を使用してプログラムやライブラリーをコンパイルすることは奨励されません。特定のシンボルについては、gcc -Wl, --dynamic-list=... を代わりに使用してください。gcc -rdynamic が使用される場合、strip コマンドや -s gcc オプションの効果は一切ありません。それは、共有ライブラリーとのランタイムリンケージについてのすべての ELF シンボルがバイナリーで保持されるためです。
readelf -s file コマンドによって読み取られます。
readelf -w file コマンドによって読み取られます。
readelf -wi file は、プログラム内でコンパイルされた debuginfo の優れた検証コマンドです。コマンド strip file または gcc -s は、プログラムのコンパイルのさまざまなステージの出力で誤って実行されます。
readelf -w file コマンドは、フォーマットを持つ .eh_frame と呼ばれる特殊セクションを表示するために使用でき、その目的は DWARF セクションの .debug_frame と類似しています。.eh_frame セクションは、ランタイム C++ 例外の解決に使用され、-g gcc オプションが使用されない場合であっても存在します。これはプライマリ RPM に保存され、debuginfo RPM には存在しません。
.symtab および .debug_* セクションが含まれます。.eh_frame、.eh_frame_hdr、または .dynsym のいずれのセクションもプログラムのランタイム時に必要になるため、debuginfo RPM には移行されず、またこの中には存在しません。
5.2. Debuginfo パッケージのインストール リンクのコピーリンクがクリップボードにコピーされました!
-debuginfo パッケージも提供します。packagename-debuginfo-version-release.architecture.rpm パッケージには、パッケージソースファイルと最終的なインストール済みバイナリの関係についての詳細情報が含まれます。debuginfo パッケージには両方の .debug ファイルが含まれ、これらには DWARF debuginfo とバイナリパッケージのコンパイルに使用されるソースファイルが含まれます。
注記
gcc コンパイルオプション -g を使用してください。デバッグのエクスペリエンスは、最適化 (-O2 などの gcc オプション -O) が -g と一緒に適用される場合に向上します。
packagename-debuginfo) の -debuginfo パッケージをインストールするには、まずマシンが対応する Debuginfo チャンネルをサブスクライブする必要があります。例えば、Red Hat Enterprise Server 6 の場合、対応するチャンネルは Red Hat Enterprise Linux Server Debuginfo (v. 6) になります。
-O2) でコンパイルされています。これは、いくつかの変数が <optimized out> と表示されることを意味します。コードのステップスルーによる多少の「ジャンプ」がありますが、クラッシュを分析することができます。最適化のために一部の情報が欠落する場合、コードを逆アセンブルし、ソースに手動で一致させることにより、正しい変数情報を得ることができます。ただし、これは例外ケースにのみ適用され、通常のデバッグには適していません。
gdb ls [...] Reading symbols from /bin/ls...(no debugging symbols found)...done. Missing separate debuginfos, use: debuginfo-install coreutils-8.4-16.el6.x86_64 (gdb) q
gdb ls
[...]
Reading symbols from /bin/ls...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install coreutils-8.4-16.el6.x86_64
(gdb) q
debuginfo-install packagename
# debuginfo-install packagename
5.2.1. コアファイル解析用の Debuginfo パッケージのインストール リンクのコピーリンクがクリップボードにコピーされました!
ulimit -c unlimited 設定が使用される場合、コアファイルは現在のディレクトリーにダンプされます。コアファイルには、プロセスによってディスクファイルの元の状態から修正されたメモリ領域のみが含まれます。クラッシュの完全な解析を実行するには、コアファイルに以下が含まれている必要があります。
- コアファイル自体
/usr/sbin/sendmailなどのクラッシュした実行可能バイナリー- クラッシュ時にバイナリーでロードされたすべての共有ライブラリー
- 実行可能ファイルおよびそのロードされたすべてのライブラリー用の .debug ファイルおよびソースファイル (どちらも debuginfo RPM に保存されている)
version-release.architecture か、または独自にコンパイルしたバイナリーの同じビルドが必要になります。クラッシュ時に、アプリケーションがすでにディスク上の yum によって再コンパイルされているか、または更新されている場合、コアファイルの解析に適してないファイルのレンダリングが行われます。
eu-unstrip -n --core=./core.9814 0x400000+0x207000 2818b2009547f780a5639c904cded443e564973e@0x400284 /bin/sleep /usr/lib/debug/bin/sleep.debug [exe] 0x7fff26fff000+0x1000 1e2a683b7d877576970e4275d41a6aaec280795e@0x7fff26fff340 . - linux-vdso.so.1 0x35e7e00000+0x3b6000 374add1ead31ccb449779bc7ee7877de3377e5ad@0x35e7e00280 /lib64/libc-2.14.90.so /usr/lib/debug/lib64/libc-2.14.90.so.debug libc.so.6 0x35e7a00000+0x224000 3ed9e61c2b7e707ce244816335776afa2ad0307d@0x35e7a001d8 /lib64/ld-2.14.90.so /usr/lib/debug/lib64/ld-2.14.90.so.debug ld-linux-x86-64.so.2
$ eu-unstrip -n --core=./core.9814
0x400000+0x207000 2818b2009547f780a5639c904cded443e564973e@0x400284 /bin/sleep /usr/lib/debug/bin/sleep.debug [exe]
0x7fff26fff000+0x1000 1e2a683b7d877576970e4275d41a6aaec280795e@0x7fff26fff340 . - linux-vdso.so.1
0x35e7e00000+0x3b6000 374add1ead31ccb449779bc7ee7877de3377e5ad@0x35e7e00280 /lib64/libc-2.14.90.so /usr/lib/debug/lib64/libc-2.14.90.so.debug libc.so.6
0x35e7a00000+0x224000 3ed9e61c2b7e707ce244816335776afa2ad0307d@0x35e7a001d8 /lib64/ld-2.14.90.so /usr/lib/debug/lib64/ld-2.14.90.so.debug ld-linux-x86-64.so.2
- 特定のバイナリーがマップされるメモリー内アドレス (たとえば、最初の行の
0x400000)。 - バイナリーのサイズ (たとえば、最初の行の
+0x207000)。 - バイナリーの 160-bit SHA-1 build-id (たとえば、最初の行の
2818b2009547f780a5639c904cded443e564973e)。 - build-id バイトが保存されていたメモリ内アドレス (たとえば、最初の行の
@0x400284)。 - ディスク上のバイナリーファイル (ある場合)(たとえば、最初の行の
/bin/sleep)。これは、このモジュールのeu-unstripで検索されました。 - ディスク上の debuginfo ファイル (ある場合)(たとえば、
/usr/lib/debug/bin/sleep.debug)。ただし、バイナリーファイル参照を代わりに使用するのがベストプラクティスになります。 - コアファイルの共有ライブラリーリストに保存される共有ライブラリー名 (たとえば、3 行目の
libc.so.6)。
ab/cdef0123456789012345678901234567890123) では、シンボリックリンクがその debuginfo RPM に組み込まれます。上記の /bin/sleep 実行可能ファイルを例にすると、coreutils-debuginfo RPM には、他のファイルの中でもとりわけ以下が含まれます。
lrwxrwxrwx 1 root root 24 Nov 29 17:07 /usr/lib/debug/.build-id/28/18b2009547f780a5639c904cded443e564973e -> ../../../../../bin/sleep* lrwxrwxrwx 1 root root 21 Nov 29 17:07 /usr/lib/debug/.build-id/28/18b2009547f780a5639c904cded443e564973e.debug -> ../../bin/sleep.debug
lrwxrwxrwx 1 root root 24 Nov 29 17:07 /usr/lib/debug/.build-id/28/18b2009547f780a5639c904cded443e564973e -> ../../../../../bin/sleep*
lrwxrwxrwx 1 root root 21 Nov 29 17:07 /usr/lib/debug/.build-id/28/18b2009547f780a5639c904cded443e564973e.debug -> ../../bin/sleep.debug
name-debuginfo-version-release.rpm パッケージ の名前、バージョンまたはリリースを認識しません。このような場合に、GDB は異なるコマンドを提案します。
gdb -c ./core [...] Missing separate debuginfo for the main executable filename Try: yum --disablerepo='*' --enablerepo='*debug*' install /usr/lib/debug/.build-id/ef/dd0b5e69b0742fa5e5bad0771df4d1df2459d1
gdb -c ./core
[...]
Missing separate debuginfo for the main executable filename
Try: yum --disablerepo='*' --enablerepo='*debug*' install /usr/lib/debug/.build-id/ef/dd0b5e69b0742fa5e5bad0771df4d1df2459d1
rpm -q packagename packagename-debuginfo- version-release.architecture 定義が一致する必要があります。
rpm -V packagename packagename-debuginfo- このコマンドは、packagename などの修正された可能性のある設定ファイルを除いて一切の出力を行いません。
rpm -qi packagename packagename-debuginfo- version-release.architecture は、Vendor、Build Date、および Build Host が一致する情報を表示する必要があります。Red Hat Enterprise Linux RPM パッケージ用の CentOS debuginfo RPM を使用しても機能しません。
repoquery --disablerepo='*' --enablerepo='*-debug*' -qf /usr/lib/debug/.build-id/ef/dd0b5e69b0742fa5e5bad0771df4d1df2459d1
$ repoquery --disablerepo='*' --enablerepo='*-debug*' -qf /usr/lib/debug/.build-id/ef/dd0b5e69b0742fa5e5bad0771df4d1df2459d1
yum --enablerepo='*-debug*' install $(eu-unstrip -n --core=./core.9814 | sed -e 's#^[^ ]* \(..\)\([^@ ]*\).*$#/usr/lib/debug/.build-id/\1/\2#p' -e 's/$/.debug/')
# yum --enablerepo='*-debug*' install $(eu-unstrip -n --core=./core.9814 | sed -e 's#^[^ ]* \(..\)\([^@ ]*\).*$#/usr/lib/debug/.build-id/\1/\2#p' -e 's/$/.debug/')
/usr/bin/createrepo を使用し、カスタムアプリケーションビルドでローカルリポジトリーを作成することができます。
5.3. GDB リンクのコピーリンクがクリップボードにコピーされました!
- デバッグされるコード内のメモリの検査および修正 (たとえば、変数の読み取りおよび設定)。
- 主に実行中かまたは停止しているかなどの、デバッグされるコードの実行状態の制御。
- コードの特定セクションの実行の検出 (プログラマーの関心のある特定エリアに達した際にコードの実行を停止するなど)。
- メモリの特定領域へのアクセスの検出 (指定された変数にアクセスした際にコードの実行を停止するなど)。
- 制御された方法による (それ以外の停止されたプログラムから) のコードの複数部分の実行。
- シグナルなどのプログラミングによる非同期イベントの検出。
- メモリ内の変数の場所
- 変数の性質
- デバッグ情報
- GDB の操作の多くは、プログラムのデバッグ情報に依存します。この情報は通常コンパイラーから発生するものですが、これらの多くは、プログラムのデバッグ中にのみ必要になります。つまり、プログラムの通常の実行時には使用されません。この理由により、コンパイラーは常にデフォルトでこの情報を利用可能にする訳ではありません。たとえば、GCC は
-gフラグを使ってこのデバッグ情報を提供するために明示的に指示される必要があります。GDB の機能を完全に利用するには、GDB でデバッグ情報を利用できるようにすることを強くお勧めします。GDB は、利用可能なデバッグ情報がない状態でコードに対して実行される場合にその使用が非常に限られます。 - ソースコード
- GDB (またはそれ以外のデバッガー) の最も役に立つ機能の 1 つに、プログラム実行内のイベントと状況を、ソースコードのこれらに対応するロケーションに関連付ける機能があります。このロケーションは、通常はソースファイルの特定の行または一連の行を参照します。当然これを行うには、プログラムのソースコードがデバッグ時に GDB で利用可能であることが必要です。
5.3.1. 単純な GDB リンクのコピーリンクがクリップボードにコピーされました!
br(breakpoint)- breakpoint コマンドは、GDB に対し実行内の指定ポイントに達すると実行を一時停止するように指定します。このポイントは数多くの方法で指定することができますが、最も一般的な方法は、単にソースファイルの行番号か、または関数の名前になります。任意の数のブレークポイントを同時に有効にすることができます。これは、しばしば GDB の開始後に発行される最初のコマンドになります。
r(run)runコマンドはプログラムの実行を開始します。runを任意の引数を使って実行すると、それらの引数は、プログラムが正常に開始されているかのように実行可能ファイルに渡されます。通常、ユーザーはブレークポイントを設定した後にこのコマンドを発行します。
p(print)printコマンドは、指定された引数の値を表示し、この引数にはプログラムに関連するほぼすべてのものを使用できます。通常引数は、単純な単一値から構造に至る、様々な複雑度を持つ変数の名前です。また引数は、プログラム変数やライブラリー関数、またはテスト中のプログラムで定義される関数の使用を含む、現在の言語で有効な式として使用することもできます。bt(backtrace)backtraceは、実行が停止されるまで使用される関数呼び出しのチェーンを表示します。これは、定義することが難しい原因を持つ重大なバグ (セグメント化障害など) を調査する際に役に立ちます。l(list)- 実行が停止すると、
listコマンドは、プログラムが停止した場所に対応するソースコードの行を表示します。
c(continue)continueコマンドは、プログラムの実行を再開し、プログラムがブレークポイントが検出するか、特定または緊急の条件 (エラーなど) を検出するか、または停止するまで継続して実行されます。n(next)continueのように、nextコマンドも実行を再開しますが、continueコマンドの暗黙的な停止条件のほかに、nextは、現在のソースファイル内のコードの次のシーケンシャル行でも実行を停止します。s(step)nextのように、stepコマンドも、現在のソースファイル内のコードのそれぞれのシーケンシャル行で実行を停止します。ただし、実行が 関数呼び出しを含むソース行で現在停止している場合、GDB は関数呼び出しを入力した後に (それを実行するのではなく) 実行を停止します。fini(finish)- 前述のコマンドのように、
finishコマンドは実行を再開しますが、実行が関数から返されると停止します。
5.3.2. GDB の実行 リンクのコピーリンクがクリップボードにコピーされました!
手順5.1 'Hello World' プログラムのデバッグ
- 以下のように、デバッグフラグを使った実行可能ファイルに hello.c をコンパイルします。
gcc -g -o hello hello.c生成されるバイナリーhelloがhello.cと同じディレクトリーにあることを確認します。 helloバイナリーでgdbを実行します (つまりgdb hello)。- いくつかの導入部のコメントの後に、
gdbはデフォルトの GDB プロンプトを表示します。(gdb)
(gdb)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変数
helloはグローバルであるため、メインの手順が開始する前に表示することができます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow printはhello[0]をターゲットとしており、*helloには*(hello + 1)などのような式の評価が必要になることに注意してください。(gdb) p *(hello + 1) $4 = 101 'e'
(gdb) p *(hello + 1) $4 = 101 'e'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 次に、ソースをリストします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow listは、fprintf呼び出しが 8 行目にあることを示しています。その行にブレークポイントを適用して、コードを再開します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 最後に、
nextコマンドを使用して、fprintf呼び出しの後に進んでこれを実行します。(gdb) n Hello, World! 9 return (0);
(gdb) n Hello, World! 9 return (0);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.3. 条件付きブレークポイント リンクのコピーリンクがクリップボードにコピーされました!
continue コマンドを数千回も辛抱強く実行するとは想像し難いため、このようなデバッグプログラムは困難なものです。
(gdb) br 8 if i == 8936 Breakpoint 1 at 0x80483f5: file iterations.c, line 8. (gdb) r
(gdb) br 8 if i == 8936
Breakpoint 1 at 0x80483f5: file iterations.c, line 8.
(gdb) r
info br を使用する)。
5.3.4. フォークされる実行 リンクのコピーリンクがクリップボードにコピーされました!
set follow-fork-mode 機能は、この障害を克服するために使用され、プログラマーが親プロセスの代わりに子プロセスに従うことを可能にします。
set follow-fork-mode parent- 元のプロセスがフォークの後にデバッグされます。子プロセスは問題なく実行されます。これはデフォルトです。
set follow-fork-mode child- 新規プロセスがフォークの後にデバッグされます。親プロセスは問題なく実行されます。
show follow-fork-mode- フォーク呼び出しに対する現在のデバッガー応答を表示します。
set detach-on-fork コマンドを使用して、フォーク後に親プロセスと子プロセスの両方をデバッグするか、またはそれらの両方に対してデバッガー制御を保持します。
set detach-on-fork on- 子プロセス (または
follow-fork-modeの値によっては親プロセス) が切り離され、別個に実行できるようになります。これはデフォルトです。 set detach-on-fork off- 両方のプロセスが GDB の制御下に保持されます。1 つのプロセス (
follow-fork-modeの値に応じて子または親のどちらか) のデバッグが、他方が一時停止している間に通常どおり実行されます。 show detach-on-forkdetach-on-forkモードがオンであるか、またはオフであるかどうかを表示します。
gcc -g fork.c -o fork -lpthread でコンパイルされ、GDB で検査された後に、以下を表示します。
set follow-fork-mode child を使用した同じテストです。
.gdbinit に追加すると、永続的な設定にすることができます。
set follow-fork-mode ask が ~/.gdbinit に追加されると、 ask モードがデフォルトモードになります。
5.3.5. 個別スレッドのデバッグ リンクのコピーリンクがクリップボードにコピーされました!
set non-stop on および set target-async on を使用します。これらは .gdbinit に追加できます。この機能がオンになると、GDB はスレッドデバッグを実行する準備ができます。
gcc -g three-threads.c -o three-threads -lpthread gdb ./three-threads
gcc -g three-threads.c -o three-threads -lpthread
gdb ./three-threads
info threads がプログラムのスレッド要約と現在の状態についての詳細情報の一部を提供することに注意してください。この場合、作成されているのは 1 つのスレッドのみになります。
thread <thread number> コマンドを使用してフォーカスを別のスレッドに切り替えます。
continue を使用して中断せずに続行されます。
continue の末尾にある & に注意してください。これによって、GDB のプロンプトが戻るため、他のコマンドを実行することができます。interrupt を使用して thread 3 が再び関連性を持つ場合は、実行が停止される可能性があります。
(gdb) interrupt [Thread 0x7ffff75d2710 (LWP 4688)] #3 stopped. 0x000000343f4a6a6d in nanosleep () at ../sysdeps/unix/syscall-template.S:82 82 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
(gdb) interrupt
[Thread 0x7ffff75d2710 (LWP 4688)] #3 stopped.
0x000000343f4a6a6d in nanosleep () at ../sysdeps/unix/syscall-template.S:82
82 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
5.3.6. GDB の代替ユーザーインターフェース リンクのコピーリンクがクリップボードにコピーされました!
- Eclipse (CDT)
- Eclipse 開発環境に統合されたグラフィカルデバッガーインターフェース。さらに詳しい情報は、『Eclipse web サイト』 にあります。
- Nemiver
- GNOME デスクトップ環境に適したグラフィカルなデバッガーインターフェース。さらに詳しい情報は、『Nemiver web サイト』にあります。
- Emacs
- emacs に統合された GDB インターフェース。さらに詳しい情報は、『Emacs web サイト』にあります。
5.3.7. GDB ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
info gdb および man gdb は、gdb のインストール済みバージョンに関する最新でより詳しい情報を提供しています。
5.4. Variable Tracking at Assignments リンクのコピーリンクがクリップボードにコピーされました!
gcc -O2 -g でビルドされた) コードの場合でもより多くのパラメーターと変数値を利用できるようになります。さらに、表示される <optimized out> メッセージがより少なくなります。
gcc -O -g またはより一般的には gcc -O2 -g) 場合にデフォルトで有効になります。このビルド時に VTA を無効にするには、-fno-var-tracking-assignments を追加します。さらに、VTA インフラストラクチャーには、新規の gcc オプション -fcompare-debug が含まれます。このオプションは、デバッグ情報を使った場合とデバッグ情報を使わなかった場合の GCC でコンパイルされたコードをテストします。テストはこれら 2 つのバイナリーが同一である場合にパスします。このテストにより、実行可能コードがいずれのデバッグオプションによっても影響されず、かつデバッグコードには隠されたバグがないことを確認できます。-fcompare-debug はコンパイル時に多くのコストを追加することに注意してください。このオプションについての詳細は、man gcc を参照してください。
5.5. Python Pretty-Printer
リンクのコピーリンクがクリップボードにコピーされました!
print は、ターゲットアプリケーションのついての総合的なデバッグ情報を出力します。GDB は、可能な限り多くのデバッグデータをユーザーに提供することを目的としています。ただし、非常に複雑なプログラムの場合には、データ量は非常に把握しにくくなる可能性があります。
print 出力の解読に役立つツールを提供しません。GDB は、プログラムデータの解読に役立つツールを簡単に作成する権限をユーザーに与えません。そのため、デバッグデータを読み取り、把握する方法が、とりわけ大規模で複雑なプロジェクトの場合にかなり難しくなります。
print 出力をカスタマイズし、(これにより意味をもたせる) 唯一の方法は、GDB を変更し、再コンパイルする方法です。ただし、これを実際に行える開発者はほとんどいません。さらにこの方法には拡張性がなく、開発者が異種のプログラムで、同じ様に複雑なデバッグデータを含む複数プログラムもデバッグする必要がある場合には特に対応が難しくなります。
プログラムデータを登録済みの一連の Python pretty-printer に渡すために、GDB 開発チームは GBD 印刷コードにフックを追加しました。これらのフックは、安全性に注意を払って実装されました。組み込まれた GBD 印刷コードは依然として元のままの状態で、デフォルトのフォールバック印刷ロジックとして機能できます。そのため、専門のプリンターが使用できない場合でも、GDB はこれまでと同様の方法でデバッグデータを出力します。これにより、GDB に後方互換性を持たせ、pretty-printer を必要としないユーザーが GDB を引き続き使用することができます。
この新規の「Python スクリプト作成」アプローチにより、ユーザーは必要に応じた量の知識を特定のプリンターに抽出することができます。そのため、プロジェクトには、ユーザー要件に特化した特定の方法でプログラムデータを解析するプリンタースクリプトのライブラリー全体を組み込むことができます。ユーザーが特定プロジェクト用にビルドできるプリンター数には制限がありません。さらに、スクリプトによってデバッグデータのスクリプトがカスタマイズできることで、ユーザーによるプリンタースクリプト — またはそれらのライブラリー全体の再利用と目的の再設定がより容易になります。
このアプローチの最もすぐれている点は、初めてでも実行しやすいことです。Python スクリプト作成は学習が比較的に容易で、オンラインで利用できる無料のドキュメントが多数あります。さらに、大半のプログラマーは Python スクリプト作成や一般的なスクリプト作成における基本から中級レベルの経験をすでに有しています。
g++ -g fruit.cc -o fruit でコンパイルされています。これから、GDB を使ってこのプログラムを検査します。
{fruit = 1} の出力は、これがデータ構造 'Fruit' 内の 'fruit' の内部表現であるために正確なものです。ただし、ここでは整数 1 がどの fruit を表すかを判別することが難しいため、人間による読み取りは容易ではありません。
gdb.pretty_printers.append (lookup_type) 行は、関数 lookup_type を、printer lookup 関数の GDB のリストに追加します。
lookup_type は、出力するオブジェクトのタイプを検査し、適切な pretty printer を返します。オブジェクトは、パラメーター val で GDB によって渡されます。 val.type は pretty printer のタイプを表す属性です。
FruitPrinter は、実際の作業が行われる場所です。さらに具体的には、その場所はそのクラスの to_string 関数になります。この関数では、整数 fruit は、python ディクショナリ構文 self.val['fruit'] を使って取得されます。次に、名前がその値を使って決定されます。この関数によって戻される文字列は、ユーザーに出力される文字列になります。
fruit.py の作成後、これは次のコマンドを使って GDB にロードされる必要があります。
(gdb) python execfile("fruit.py")
(gdb) python execfile("fruit.py")
5.6. Eclipse による C/C++ アプリケーションのデバッグ リンクのコピーリンクがクリップボードにコピーされました!
- エディター内のカーソルを使って右マウスボタンをクリック
- アプリケーションバイナリーから
- 関連するバイナリーが含まれるプロジェクトから
- コントロールビュー
- コントロールビューはデバッグビューとして知られており、これには、コード選択のステップオーバーとステップインを行うためのボタンが含まれます。また、ここからスレッドプロセスを一時停止できます。
- ソースコードエディタービュー
- ソースコードエディタービューは、どのソースコード行が実行内のデバッガーの位置に対応するかを示します。デバッグビューツールバー内の ボタンを押すことにより、ソースコード行ではなくアセンブリ命令によってアプリケーションの実行を制御することができます。
- コンソールビュー
- コンソールビューは、利用可能な入力および出力を表示します。
第6章 プロファイル リンクのコピーリンクがクリップボードにコピーされました!
perf、および SystemTap) が含まれます。それぞれのツールは、以下のセクションで説明されているように特定タイプのプロファイルの実行に適しています。
6.1. Valgrind リンクのコピーリンクがクリップボードにコピーされました!
6.1.1. Valgrind ツール リンクのコピーリンクがクリップボードにコピーされました!
- memcheck
- このツールは、メモリーからの読み取りおよびメモリーへの書き込みのすべてをチェックし、
malloc、new、free、およびdeleteへのすべてのシステム呼び出しをインターセプトすることにより、プログラム内のメモリー管理の問題を検出します。他の手段を使ってメモリー管理の問題を検出することは困難であるため、memcheck は最もよく使用される Valgrind ツールと言えるかもしれません。このような問題は長期にわたって検出されないままになることが多く、最終的には診断しにくいクラッシュを生じさせます。 - cachegrind
- cachegrind は、CPU 内の I1、D1 および L2 キャッシュの詳細なシミュレーションを実行することにより、コード内のキャッシュミスの原因を正確に指摘するキャッシュプロファイラーです。これは、キャッシュミス数、メモリ参照、およびソースコードの各行になる命令を示します。また、cachegrind は関数別、モジュール別、およびプログラム全体の要約を提供し、個々のマシン命令のカウントを表示することもできます。
- callgrind
cachegrindのように、callgrindはキャッシュ動作をモデリングできます。ただし、callgrindの主な目的は、実行済みコードについての callgraphs データを記録することにあります。- massif
- massif はヒーププロファイラーです。これは、プログラムが使用するヒープメモリーの量を測定し、ヒープブロック、ヒープ管理オーバーヘッド、およびスタックサイズについての情報を提供します。ヒーププロファイラーは、ヒープメモリーの使用量を減らす方法を探す際に役立ちます。仮想メモリを使用するシステムでは、最適なヒープメモリー使用量が設定されたプログラムがメモリー不足になる可能性は少なく、必要なページングが少ない分、スピードが速くなることがあります。
- helgrind
- POSIX pthreads スレッド化プレミティブを使用するプログラムでは、 helgrind は同期エラーを検出します。このようなエラーには以下が含まれます。
- POSIX pthreads API の誤用
- ロックの順序付けの問題から生じる潜在的なデッドロック
- データレース (ロックが適切でない状態でのメモリーへのアクセス)
lackey ツールが含まれます。
6.1.2. Valgrind の使用 リンクのコピーリンクがクリップボードにコピーされました!
valgrind パッケージとその依存関係は、Valgrind プロファイル実行を実施するために必要なすべてのツールをインストールします。Valgrind を使ってプログラムのプロファイルを作成するには、以下を使用します。
valgrind --tool=toolname program
toolname の引数のリストについては、「Valgrind ツール」 を参照してください。Valgrind ツールのスィートに加えて、none も toolname の有効な引数です。この引数を使用することにより、プロファイルを実行せずにプログラムを Valgrind の下で実行できます。これは、Valgrind 自体のデバッグまたはベンチマークの際に役立ちます。
--log-file=filename を使用します。たとえば、実行可能ファイルの hello のメモリー使用量をチェックしたり、プロファイル情報を output に送信するには、以下を使用します。
valgrind --tool=memcheck --log-file=output hello
6.1.3. Eclipse 用の Valgrind プラグイン リンクのコピーリンクがクリップボードにコピーされました!
- Memcheck
- Massif
- Cachegrind
図6.1 Profile As
eclipse-valgrind パッケージで提供されます。このプラグインについての詳細は、Eclipse の『Valgrind Integration User Guide』を参照してください。
6.1.4. Valgrind のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
man valgrind を参照してください。また Red Hat Enterprise Linux 6 は、包括的なドキュメント『Valgrind Documentation』が PDF および HTML 形式で提供されており、これらは以下にあります。
file:///usr/share/doc/valgrind-version/valgrind_manual.pdffile:///usr/share/doc/valgrind-version/html/index.html
eclipse-valgrind パッケージで提供されています。
6.2. OProfile リンクのコピーリンクがクリップボードにコピーされました!
oprofiled) を開始し、プロファイル対象のプログラムを実行し、システムプロファイルデータを収集し、このデータをより理解しやすい形式に解析することになります。OProfile はこのプロセスのすべてのステップにツールを提供します。
6.2.1. OProfile のツール リンクのコピーリンクがクリップボードにコピーされました!
- opcontrol
- このツールは OProfile デーモンを開始/終了し、プロファイルセッションの設定に使われます。
- opreport
opreportコマンドは、OProfile プロファイルセッションからバイナリーイメージのサマリーまたは記号ごとのデータを出力します。- opannotate
opannotateは OProfile セッションのプロファイルデータから注釈付きソースおよび/またはアセンブリを出力します。- oparchive
oparchiveコマンドは、実行可能ファイルやデバッグ、OProfile サンプルファイルの入ったディレクトリーを作成します。このディレクトリーは (tarで) 別のマシンに移動でき、そこでオフラインで分析ができます。- opgprof
opreportのように、opgprofコマンドは OProfile セッションからあるバイナリーイメージのプロファイルデータを出力します。opgprofの出力は、gprof形式です。
man oprofile を参照してください。各 OProfile コマンドの詳細情報については、それぞれの man ページを参照してください。OProfile に関するその他のドキュメントは、「OProfile のドキュメント」 を参照してください。
6.2.2. OProfile の使用 リンクのコピーリンクがクリップボードにコピーされました!
oprofile パッケージおよびその依存関係は、OProfile 実行に必要なすべてのユーティリティーをインストールします。OProfile にシステム上で実行中の全アプリケーションのプロファイルを行い、ライブラリーを使用しているアプリケーションで共有ライブラリーのサンプルをグループ化するように指示するには、以下のコマンドを実行します。
opcontrol --no-vmlinux --separate=library --start
# opcontrol --no-vmlinux --separate=library --start
--start-daemon を使用します。--stop オプションはデータ収集を中止し、--shutdown は OProfile デーモンを終了します。
opreport か opannotate、opgprof を使用します。デフォルトでは、OProfile デーモンが収集したデータは /var/lib/oprofile/samples/ に保存されます。
OProfile と Performance Counters for Linux (PCL) は同じハードウェアの Performance Monitoring Unit (PMU) を使用します。PCL もしくは NMI ウォッチドッグタイマーがハードウェア PMU を使用している場合、OProfile 開始時に以下のようなメッセージが表示されます。
opcontrol --start Using default event: CPU_CLK_UNHALTED:100000:0:1:1 Error: counter 0 not available nmi_watchdog using this resource ? Try: opcontrol --deinit echo 0 > /proc/sys/kernel/nmi_watchdog
# opcontrol --start
Using default event: CPU_CLK_UNHALTED:100000:0:1:1
Error: counter 0 not available nmi_watchdog using this resource ? Try:
opcontrol --deinit
echo 0 > /proc/sys/kernel/nmi_watchdog
perf コマンドを停止し、NMI ウォッチドッグをオフにして以下のコマンドで OProfile カーネルドライバーをリロードします。
opcontrol --deinit
# opcontrol --deinit
echo 0 > /proc/sys/kernel/nmi_watchdog
# echo 0 > /proc/sys/kernel/nmi_watchdog
6.2.3. Eclipse 用の OProfile プラグイン リンクのコピーリンクがクリップボードにコピーされました!
OProfile プラグインを使うと Eclipse ユーザーは特定のバイナリーのプロファイルを行い、関連の共有ライブラリー/カーネルモジュールを含め、さらにはバイナリーを除外することができます。これにより、ソースコードの個別の行番号にいたるまで、各バイナリー、機能、記号に関する非常に対象を絞った詳細な使用量の結果が作成されます。
このプラグインは他のプラグインと同様に、Eclipse で豊富な OProfile 結果を表示します。結果のソース行の上でダブルクリックすると、Eclipse エディター上の対応する行に移動します。ここではユーザーは単一インターフェースでコードをビルド、プロファイル、編集することが可能で、Eclipse ユーザーにとってプロファイルが便利になります。さらには、プロファイルの実行が Eclipse 内で C/C++ アプリケーションと同じ方法で開始、設定されます。
Eclipse インターフェースを使うとユーザーは OProfile コマンドラインユーティリティーで利用可能な全オプションを使用しているプロファイルの実行を設定できます。プラグインは、プロセッサーデバッグレジスタ (つまりカウンター) やハードウェアカウンターをサポートしていないカーネルもしくはプロセッサー用の割り込みベースのプロファイルに基づいてイベント設定をサポートします。
OProfile プラグインは通常、ほとんどのプロファイル実行に使用可能な、全オプション向けの便利なデフォルトを提供します。さらに、これらのデフォルトを使用してプロファイル実行を行う「1 クリックプロファイル」の機能もあります。ユーザーは、最初から最後までアプリケーションのプロファイル化を行うことも可能ですし、手動のコントロールダイアログでコードの特定分野を選択することもできます。
図6.3 Profile As
図6.4 Profile Configuration
eclipse-oprofile パッケージで提供されます。このプラグインについての詳細情報は、Eclipse の にある『OProfile Integration User Guide』を参照してください (eclipse-profile でも提供)。
6.2.4. OProfile のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
man oprofile を参照してください。Red Hat Enterprise Linux 6 は file:///usr/share/doc/oprofile-version/ でも OProfile の 2 種類の総合ガイドを提供しています。
- OProfile Manual
- OProfile の設定および使用方法に関する詳細な指示が記載されている総合マニュアルで、
file:///usr/share/doc/oprofile-version/oprofile.htmlにあります。 - OProfile Internals
- OProfile の構成に関するドキュメントで、OProfile アップストリームへの投稿に興味のあるプログラマーに有用なものです。
file:///usr/share/doc/oprofile-version/internals.htmlにあります。
eclipse-oprofile パッケージで提供されています。
6.3. SystemTap
リンクのコピーリンクがクリップボードにコピーされました!
- どのシステムイベント (たとえば、仮想ファイルシステムの読み込み、パケット送信) が特定のアクション (たとえば、印刷、解析、またはデータ操作) を開始するかを指定する SystemTap スクリプト を書き込みます。
- SystemTap がスクリプトを C プログラミングに翻訳し、さらにカーネルモジュールにコンパイルします。
- SystemTap がこのカーネルモジュールを読み込んで、実際のプローブを実行します。
kernel-variant-devel-versionkernel-variant-debuginfo-versionkernel-debuginfo-common-arch-version
注記
kernel-debuginfo-common-arch-version となっています。Red Hat Enterprise Linux 5 では kernel-debuginfo-common-version でした。
--remote オプションという重要な新機能が追加されました。これにより、ユーザーは SystemTap モジュールをローカルでビルドし、SSH 経由でリモートでの実行が可能になります。これを使用する際の構文は、--remote [USER@]HOSTNAME となります。実行ターゲットを特定の SSH ホストに設定し、オプションで異なるユーザー名を使用します。複数の実行ターゲットを対象とするために、このオプションは繰り返すことができます。パス 1-4 はスクリプトを通常通りビルドするようにローカルで完了し、パス 5 がモジュールをターゲットにコピーして実行します。
6.3.1. SystemTap コンパイルサーバー リンクのコピーリンクがクリップボードにコピーされました!
- システム管理者は、パッケージをユーザーに利用可能とする前にカーネル情報パッケージの整合性を検証できます。
- コンパイルサーバーの ID が Secure Socket Layer (SSL) を使って認証できます。SSL は、送信中の盗聴や改ざんを防ぐ暗号化されたネットワーク接続を提供します。
- 個別のユーザーが独自のサーバーを運用し、それらを信頼できるサーバーとして権限を与えることができます。
- システム管理者が、ネットワーク上の 1 つ以上のサーバーを全ユーザーの使用において信頼できるサーバーとして権限を付与できます。
- 明示的に権限が付与されていないサーバーは無視され、サーバーの偽装や同様の攻撃を防ぎます。
6.3.2. 特権のないユーザーに対する SystemTap のサポート リンクのコピーリンクがクリップボードにコピーされました!
sudo) を与えられることは滅多にありません。さらに、SystemTap の完全な機能があるとシステムを完全にコントロールできるため、これも特権のあるユーザーに制限されています。
--unprivileged という新しいオプションが追加されました。このオプションを使うと、特権のないユーザーが stap を実行できるようになります。もちろん、stap を実行しようとする特権のないユーザーにはいくつかの制限が課せられます。
注記
stapusr グループのメンバーですが stapdev グループのメンバーではありません (また、root でもありません)。
--unprivileged オプションを使用する際は毎回、サーバーは特権のないユーザーに対して課せられら制限についてスクリプトをチェックします。チェックが成功した場合は、サーバーはスクリプトをコンパイルして自己生成した証明書を使って作成されたモジュールに署名します。クライアントがモジュールを読み込もうとする際には、root が保守/権限を付与している信頼できる署名証明書のデータベースに対してモジュールの署名をチェックすることで、staprun が最初にモジュールの署名を検証します。
staprun は以下の点が保証されます。
- モジュールが信頼できる systemtap サーバー実装を使用して作成された。
- モジュールが
--unprivilegedオプションを使用してコンパイルされた。 - モジュールが、特権のないユーザーによる使用で必要とされる制限を満たしている。
- モジュールは作成以降、改ざんされていない。
6.3.3.
SSL および認証管理 リンクのコピーリンクがクリップボードにコピーされました!
--unprivileged オプションを使ってコンパイルサーバーが作成したカーネルモジュールの確認も行います。
6.3.3.1. コンパイルサーバー接続の承認 リンクのコピーリンクがクリップボードにコピーされました!
6.3.3.2. コンパイルサーバーのモジュール署名の承認 (特権のないユーザー) リンクのコピーリンクがクリップボードにコピーされました!
6.3.3.3. 自動承認 リンクのコピーリンクがクリップボードにコピーされました!
stap-server initscript を使用して開始したサーバーは、同一ホスト上のすべてのクライアントからの接続を受け付けるよう自動的に承認されます。
stap-server で開始したコンパイルサーバーは、稼働するホスト上で信頼できる署名者として自動的に承認されます。コンパイルサーバーが他の方法で開始された場合は、このように自動的には承認されません。
6.3.4. SystemTap のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
- 『SystemTap Beginner's Guide』
- 『SystemTap Tapset Reference』
- 『SystemTap Language Reference』 (IBM 提供)
systemtap パッケージをインストールするとローカルでも見ることができます。
file:///usr/share/doc/systemtap-version/SystemTap_Beginners_Guide/index.htmlfile:///usr/share/doc/systemtap-version/SystemTap_Beginners_Guide.pdffile:///usr/share/doc/systemtap-version/tapsets/index.htmlfile:///usr/share/doc/systemtap-version/tapsets.pdf
6.4. Performance Counters for Linux (PCL) ツールおよび perf リンクのコピーリンクがクリップボードにコピーされました!
perf が含まれています。
6.4.1. Perf ツールコマンド リンクのコピーリンクがクリップボードにコピーされました!
perf コマンドを挙げます。
- perf stat
- この
perfコマンドは、実行された指示やクロックサイクルを含む一般的なパフォーマンスイベントの全体的な統計情報を提供します。オプションでは、デフォルトの測定イベント以外のものが選べます。 - perf record
- この
perfはパフォーマンスデータをファイルに記録し、これは後でperf reportを使って分析できます。 - perf report
- この
perfコマンドはファイルからパフォーマンスデータを読み取り、分析します。 - perf list
- この
perfコマンドは、特定のマシン上で利用可能なイベントを一覧表示します。これらのイベントは、パフォーマンス監視ハードウェアおよびシステムのソフトウェア設定によって異なります。
perf コマンドの完全な一覧表は、perf help を使って取得できます。各 perf コマンドの man ページ情報を取得するには、perf help command を使います。
6.4.2. Perf の使用方法 リンクのコピーリンクがクリップボードにコピーされました!
make およびその子についての統計情報を収集するには、以下のコマンドを使用します。
perf stat -- make all
# perf stat -- make all
perf コマンドは、多くの異なるハードウェアおよびソフトウェアカウンターを収集します。そして、以下の情報を表示します。
perf ツールはサンプルを記録することもできます。たとえば、make コマンドおよびその子に関するデータを記録するには、以下のコマンドを実行します。
perf record -- make all
# perf record -- make all
[ perf record: Woken up 42 times to write data ] [ perf record: Captured and wrote 9.753 MB perf.data (~426109 samples) ]
[ perf record: Woken up 42 times to write data ]
[ perf record: Captured and wrote 9.753 MB perf.data (~426109 samples) ]
{} グループ構文に新機能が追加され、これによりコマンドライン上でイベントグループが指定されている方法に基づいてイベントグループが作成できるようになりました。
--group および -g オプションには変更はありません。記録、統計情報、トップコマンドが指定されていれば、指定イベントすべてが単一グループのメンバーになり、最初のイベントがグループリーダーとなります。
{} グループ構文は、以下のようなグループの作成を可能にします。
perf record -e '{cycles, faults}' ls
# perf record -e '{cycles, faults}' ls
perf record -r '{faults:k,cache-references}:p'
# perf record -r '{faults:k,cache-references}:p'
:kp 修飾子が faults に使われ、:p 修飾子が cache-references イベントに使われることになります。
OProfile と Performance Counters for Linux (PCL) は同じハードウェアの Performance Monitoring Unit (PMU) を使用します。PCL perf コマンドを使用する際に OProfile が実行中である場合は、OProfile 開始時に以下のようなエラーメッセージが表示されます。
Error: open_counter returned with 16 (Device or resource busy). /bin/dmesg may provide additional information. Fatal: Not all events could be opened.
Error: open_counter returned with 16 (Device or resource busy). /bin/dmesg may provide additional information.
Fatal: Not all events could be opened.
perf コマンドを使用するには、まず OProfile をシャットダウンします。
opcontrol --deinit
# opcontrol --deinit
perf.data を分析してサンプルの相対頻度を測定することができます。レポート出力には、コマンド、オブジェクト、サンプルの機能などが含まれます。perf report を使って perf.data の分析を出力します。たとえば、以下のコマンドは最も多くの時間を消費する実行可能ファイルのレポートを作成します。
perf report --sort=comm
# perf report --sort=comm
make が xsltproc および pdfxmltex で最も多くの時間を消費していることを示しています。make が完了する時間を短縮するには、xsltproc と pdfxmltex にフォーカスします。xsltproc が実行する機能を一覧表示するには、以下のコマンドを実行します。
perf report -n --comm=xsltproc
# perf report -n --comm=xsltproc
6.5. ftrace リンクのコピーリンクがクリップボードにコピーされました!
ftrace フレームワークはユーザーにいくつかのトレース機能を提供します。これは SystemTap のインターフェースよりも非常にシンプルなインターフェースでアクセス可能です。このフレームワークは、debugfs ファイルシステムにある仮想ファイルのセットを使用します。これらのファイルは、特定のトレーサーを有効にします。ftrace 機能トレーサーは、カーネルで呼び出された各機能をリアルタイムで出力します。ftrace フレームワーク内の他のトレーサーは、ウェイクアップ待ち時間やタスクスイッチ、カーネルイベントなどの分析にも使用できます。
ftrace に新たなトレーサーを追加し、カーネルイベントの分析用に柔軟性のあるソリューションとすることもできます。ftrace フレームワークは、ユーザースペースの外で発生する待ち時間やパフォーマンスの問題のデバッグや分析に便利です。本ガイド内で説明している他のプロファイラーと違い、ftrace カーネルのビルドイン機能です。
6.5.1. ftrace の使用方法 リンクのコピーリンクがクリップボードにコピーされました!
CONFIG_FTRACE=y オプションが設定されています。このオプションは、ftrace が必要とするインターフェースを提供します。ftrace を使用するには、以下の方法で debugfs ファイルシステムをマウントします。
mount -t debugfs nodev /sys/kernel/debug
ftrace ユーティリティーはすべて、/sys/kernel/debug/tracing/ にあります。/sys/kernel/debug/tracing/available_tracers ファイルで自分のカーネルでどのトレーサーが利用可能か確認してください。
cat /sys/kernel/debug/tracing/available_tracers
power wakeup irqsoff function sysprof sched_switch initcall nop
power wakeup irqsoff function sysprof sched_switch initcall nop
/sys/kernel/debug/tracing/current_tracer に書き込みます。たとえば、wakeup は、優先順位の最も高いタスクをタスクのウェイクアップ後にスケジュールするのにかかる最大時間を追跡・記録します。これを使用するには、以下のコマンドを実行します。
echo wakeup > /sys/kernel/debug/tracing/current_tracer
/sys/kernel/debug/tracing/tracing_on に以下のように書き込みます。
echo 1 > /sys/kernel/debug/tracing/tracing_on (追跡を有効化)
echo 0 > /sys/kernel/debug/tracing/tracing_on (追跡を無効化)
- /sys/kernel/debug/tracing/trace
- このファイルには、ヒューマンリーダブルな追跡出力が含まれています。
- /sys/kernel/debug/tracing/trace_pipe
- このファイルには
/sys/kernel/debug/tracing/traceと同じ出力が含まれていますが、これはコマンドにパイプ処理されることになっています。/sys/kernel/debug/tracing/traceとは異なり、このファイルからの読み取りは出力を消費します。
6.5.2. ftrace のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
ftrace フレームワークは、以下のファルで完全に文書化されています。
- 『ftrace - Function Tracer (機能トレーサー)』:
file:///usr/share/doc/kernel-doc-version/Documentation/trace/ftrace.txt - 『function tracer guts』:
file:///usr/share/doc/kernel-doc-version/Documentation/trace/ftrace-design.txt
第7章 Red Hat Developer Toolset リンクのコピーリンクがクリップボードにコピーされました!
7.1. Red Hat Developer Toolset とは? リンクのコピーリンクがクリップボードにコピーされました!
scl ユーティリティーを使用することで、任意のバージョンをいつでも選択できます。この製品をインストールして実行可能ファイルを起動する詳細な方法については、Red Hat Developer Toolset 3.0 User Guide を参照してください。
7.2. Red Hat Developer Toolset が提供するもの リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | バージョン | 説明 |
|---|---|---|
| Eclipse | 4.4 | グラフィカルユーザーインターフェースの統合開発環境。[a] |
| GCC | 4.9.1 | C、C++、および Fortran をサポートするポータブルコンパイラースイート。 |
| binutils | 2.24 | オブジェクトファイルおよびバイナリーを検査、操作するバイナリーツールおよび他のユーティリティーのコレクション。 |
| elfutils | 0.159 | ELF ファイルを検査、操作するバイナリーツールおよび他のユーティリティーのコレクション。 |
| dwz | 0.11 | ELF 共有ライブラリーおよびサイズの ELF 実行可能ファイルに含まれる DWARF デバッグ情報を最適化するツール。 |
| GDB | 7.8 | C、C++、および Fortran で書かれたプログラム用のコマンドラインデバッガー。 |
| ltrace | 0.7.91 | プログラムが作成するダイナミックなライブラリーへの呼び出しを表示するデバッグツール。プログラムが実行するシステム呼び出しを監視することもできます。 |
| strace | 4.8 | プログラムが使用するシステムコールおよび受け取るシグナルを監視するデバッグツール。 |
| memstomp | 0.1.5 | さまざまな標準では許可されていないメモリー領域の重複をともなうライブラリー関数へのコールを特定するデバッグツール。 |
| SystemTap | 2.5 | インストルメント化、再コンパイル、インストール、および再起動する必要なしにシステム全体のアクティビティーを監視する追跡およびプローブツール。 |
| Valgrind | 3.9.0 | メモリーエラーの検出、メモリー管理問題の特定、さらにシステムコールでの不適切な引数使用の報告を行うためのインストルメント化フレームワークおよびアプリケーションをプロファイル化する多くのツール。 |
| OProfile | 0.9.9 | プロセッサー上にあるパフォーマンス監視ハードウェアを使用して、システム上のカーネルと実行可能ファイルに関する情報を取得するシステム全体のプロファイラー。 |
| Dyninst | 8.2 | 実行中にインストルメント化を行い、ユーザー領域の実行可能ファイルとの作業を行うためのライブラリー。 |
[a]
Red Hat JBoss Middleware 用にアプリケーションを開発する場合、もしくは OpenShift Tools 用にサポートが必要な場合は、Red Hat JBoss Developer Studio の使用が推奨されます。
| ||
7.3. プラットフォームの互換性 リンクのコピーリンクがクリップボードにコピーされました!
図7.1 Red Hat Developer Toolset 3.0 互換性に関する表
7.4. その他のリソース リンクのコピーリンクがクリップボードにコピーされました!
- Red ">Red Hat Developer Toolset 3.0 Release Notes — Red Hat Developer Toolset 3.0 の 『Release Notes』 は、リリース時に入手可能な重要情報を提供しています。システム要件について、もしくは製品の既知の問題については、こちらを参照してください。
- Red Hat Developer Toolset 3.0 User Guide — Red Hat Developer Toolset 3.0 の 『User Guide』 は、製品の概要を提供し、Red Hat Developer Toolset のバージョンの始め方および使用方法を説明しています。Red Hat Developer Toolset をご使用のシステムで取得、インストール、使用する方法について、または本製品の詳細な変更点の一覧については、このガイドを参照してください。
第8章 Red Hat Software Collections リンクのコピーリンクがクリップボードにコピーされました!
8.1. Red Hat Software Collections とは リンクのコピーリンクがクリップボードにコピーされました!
scl ユーティリティーを使うことで、実行するツールのバージョンをいつでも選択することができます。
8.2. Red Hat Software Collections が提供するもの リンクのコピーリンクがクリップボードにコピーされました!
| コンポーネント | Software Collection | 説明 |
|---|---|---|
| Red Hat Developer Toolset 3.0 | devtoolset-3 | Red Hat Developer Toolset は、Red Hat_Enterprise Linux プラットフォームを使用する開発者向けに設計されています。現行バージョンの GNU Compiler Collection、GNU Debugger、Eclipse の開発プラットフォーム、その他の開発、デバッグ、パフォーマンス監視ツールなどが提供されます。コンポーネントの完全な一覧は、『Red Hat Developer Toolset User Guide』の Red Hat Developer Toolset Components の表を参照してください。 |
| Perl 5.16.3 | perl516 | 最新の安定版の Perl には、多くの追加ユーティリティーやスクリプト、および MySQL と PostgreSQL 用のデータベースコネクター があります。このバージョンでは多くの新機能および機能強化が提供されており、新たなデバッグオプション、Unicode サポートの改善、すぐれたパフォーマンスなどが含まれます。また、httpd24 Software Collection パッケージでのみサポートされる perl-DateTime と mod_perl が追加されています。 |
| PHP 5.4.16 | php54 | PEAR 1.9.4 や多くの追加拡張機能が含まれる PHP リリース。PHP 5.4 では、言語やインターフェースが数多く向上されています。APC、memcache、Zend OPcache の拡張機能も含まれます。 |
| PHP 5.5.6 | php55 | 強化された例外処理、ジェネレーター、 Zend OPcache などを含む 言語機能が向上された PHP のリリース。memcache と mongodb の拡張機能も含まれています。 |
| Python 2.7.5 | python27 | 多くのユーティリティーが追加された Python 2.7 のリリース。このバージョンの Python では、さまざまな新機能と機能強化が提供され、新たな順序付き辞書型、より速い I/O 操作、Python 3 との前方互換性の改善などが含まれます。python27 Software Collections には Python 2.7.5 インタープリター、ウェブアプリケーションのプログラミングと mod_wsgi (httpd24 Software Collection でのみ対応) に便利な拡張ライブラリー、MySQL および PostgreSQL データベースコネクター、および numpy と scipy が含まれています。 |
| Python 3.3.2 | python33 | 多くのユーティリティーが追加された Python 3 のリリース。この Software Collection は Red Hat_Enterprise Linux の開発者に Python 3 へのアクセスを提供し、このバージョンの新機能や各種の利点を活用できるようにします。python33 Software Collections には Python 3.3.2 インタープリター、ウェブアプリケーションのプログラミングと mod_wsgi (httpd24 Software Collection でのみ対応) に便利な拡張ライブラリー、PostgreSQL データベースコネクター、および numpy と scipy が含まれています。 |
| Ruby 1.9.3[a] | ruby193 | Ruby 1.9.3 および 大型の Ruby gems コレクション のある Ruby on Rails 3.2.8 のリリースです。この Software Collection は Red Hat_Enterprise Linux の開発者に Ruby 1.9 へのアクセスを提供します。Ruby 1.9 は、改善された Unicode サポート、スレッドの機能強化、迅速な読み込み時間、httpd24 Software Collection パッケージでのみサポートされる mod_passenger などを含む多くの新機能および機能強化を提供します。 |
| Ruby 2.0.0 | ruby200 | Ruby 2.0.0 のリリースです。このバージョンは大幅なパフォーマンスと信頼性の改善がなされており、Ruby 1.9.3 とのソースレベルでの後方互換性が保たれる一方で、多くの新機能とデバッグ機能の改善が追加されています。 |
| Ruby on Rails 4.0.2[a] | ror40 | Ruby on Rails 4.0 のリリースで、これは Ruby 言語で作成されたウェブアプリケーション開発フレームワークです。このバージョンでは多くの新機能と機能改善が提供されており、固定接続向けのライブストリーミングが追加されています。この Software Collection は、ruby200 コレクションと合わせてサポートされています。 |
| MariaDB 5.5.37 | mariadb55 | MariaDB のリリースで、Red Hat_Enterprise Linux. のユーザーには MySQL の代わりとなるものです。MySQL は MariaDB との互換性があるバイナリーで、データ変換せずに置き換えることが可能です。このバージョンは、PAM 認証プラグインを MariaDB に追加します。 |
| MongoDB 2.4.9[b] | mongodb24 | MongoDB のリリースで、クロスプラットフォームの NoSQL データベースとして分類されるドキュメント指向のデータベースシステムです。この Software Collection には、mongo-java-driver パッケージが含まれています。 |
| MySQL 5.5.37 | mysql55 | MySQL のリリースで、パフォーマンスの改善など、多くの新機能および機能強化が提供されます。 |
| PostgreSQL 9.2.8 | postgresql92 | PostgreSQL リリースで、カスケードレプリケーションやネイティブ JSON サポート、スケーラビリティーの改善、パフォーマンスの改善などの多くの新機能や機能強化が提供されます。 |
| Node.js 0.10 [b][c] | nodejs010 | npm 1.3.24 の Node.js リリースです。この Software Collection は、Red Hat_Enterprise Linux のユーザーにこのプログラミングプラットフォームへのアクセスを提供します。 |
| nginx 1.6.1 | nginx16 | nginx のリリースで、高い同時実行性とパフォーマンス、低いメモリー使用量にフォーカスしたウェブおよびプロキシサーバーです。このバージョンでは、各種の SSL 機能改善、SPDY 3.1、条件リクエストのキャッシュ再検証 のサポート、および 認証リクエストモジュール などの多くの新機能が導入されます。 |
| Apache httpd 2.4.6 | httpd24 | Apache HTTP サーバー (httpd) のリリースで、高パフォーマンスの イベントベースの処理モデル、強化 SSL モジュールおよび FastCGI サポート が含まれます。mod_auth_kerb モジュールも含まれています。 |
| Thermostat 1.0.4 | thermostat1 | Thermostat のリリースで、OpenJDK HotSpot JVM 用の監視およびインストルメンテーションツールです。複数の JVM インスタンスの監視をサポートします。この Software Collection は、mongodb24 コンポーネントに依存します。 |
| Git 1.9.4 | git19 | Git のリリースで、ピアツーピアのアーキテクチャーによる 分散リビジョン管理 システムです。クライアントサーバーモデルの集中型バージョン管理システムとは異なり、Git では Git リポジトリーの作業コピーは完全なリビジョン履歴を持つ完全なコピーになります。 |
| DevAssistant 0.9.1 | devassist09 | DevAssistant のリリースで、各プログラム言語で開発者が 基本的なプロジェクトを作成し、設定する 際に役立つよう設計されています。また依存関係のインストール、開発環境のセットアップ、ソース管理との作業にも役立ちます。DevAssistant は、C、C++、Java、および Python の各プログラミング言語をサポートしますが、モジュラーアーキテクチャーであることから、他の言語、フレームワーク、ツールとの作業もサポートします。 |
| Maven 3.0.5 | maven30 | Maven のリリースで、主に Java プロジェクトに使用される ソフトウェアプロジェクト管理および包括ツール です。プロジェクトオブジェクトモデル (POM) の概念をベースに、Maven はプロジェクトのビルド、レポート、ドキュメンテーションを集中化された情報から管理できます。 |
[a]
この Software Collection の一部では、JavaScript エンジンが必要になります。Red Hat_Enterprise Linux に含まれている v8314 Software Collection は V8 JavaScript エンジンを提供し、これは Software Collection の依存関係としてのみサポートされています。
[b]
この Software Collection は、v8314 も必要になります。Red Hat_Enterprise Linux に含まれている v8314 Software Collection は V8 JavaScript エンジンを提供し、これは Software Collection の依存関係としてのみサポートされています。
[c]
Red Hat_Enterprise Linux では、Node.js はテクノロジープレビューとして含まれています。Red Hat テクノロジープレビューについての詳細は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。
| ||
8.3. サポート対象のプラットフォーム リンクのコピーリンクがクリップボードにコピーされました!
8.4. Red Hat Software Collections の使い方 リンクのコピーリンクがクリップボードにコピーされました!
scl enable software_collection... 'command...'
scl enable software_collection... 'command...'
hello.pl というファイルに保存されている Perl プログラムを Perl インタープリターで実行するには、以下のように入力します。
scl enable perl516 'perl hello.pl' Hello, World!
~]$ scl enable perl516 'perl hello.pl'
Hello, World!
scl enable software_collection... bash
scl enable software_collection... bash
scl enable python27 postgresql92 bash
~]$ scl enable python27 postgresql92 bash
$X_SCLS 環境変数に保存されます。例を示します。
echo $X_SCLS python27 postgresql92
~]$ echo $X_SCLS
python27 postgresql92
scl ユーティリティーを使うことで、どのコマンドも実行できます。これは、Red Hat Enterprise Linux の同等のものに優先して、選択された Software Collection からの実行ファイルで実行されるようにします。システムにこのコマンドラインユーティリティーをインストールして使用する方法については、「Software Collections および scl-utils」 を参照してください。
8.5. Red Hat Software Collections を使用するアプリケーションのデプロイ方法 リンクのコピーリンクがクリップボードにコピーされました!
- すべての必要な Software Collections とパッケージを手動でインストールし、その後にアプリケーションを導入する。
- アプリケーション用に新たな Software Collections を作成し、必要なすべての Software Collections およびその他のパッケージを依存関係として指定する。
8.6. その他のリソース リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Software Collections 1.2 Release Notes — Red Hat Software Collections 1.2 の 『Release Notes』 は、リリース時に入手可能な重要情報を提供しています。システム要件について知りたい場合、もしくは Red Hat Software Collections の既知の問題について知りたい場合は、こちらを参照してください。
- Red Hat Software Collections 1.2 Packaging Guide — Red Hat Software Collections 1.2 の 『Packaging Guide』 は、カスタマイズされた Software Collections のビルド方法について説明しています。
第9章 ドキュメントツール リンクのコピーリンクがクリップボードにコピーされました!
9.1. Doxygen リンクのコピーリンクがクリップボードにコピーされました!
9.1.1. Doxygen 対応の出力および言語 リンクのコピーリンクがクリップボードにコピーされました!
- RTF (MS Word)
- PostScript
- ハイパーリンク付き PDF
- 圧縮 HTML
- Unix man ページ
- C
- C++
- C#
- Objective -C
- IDL
- Java
- VHDL
- PHP
- Python
- Fortran
- D
9.1.2. 使用開始 リンクのコピーリンクがクリップボードにコピーされました!
doxygen -g config-file コマンドを使用する方法です。この方法だと、編集が容易なテンプレート設定ファイルが作成されます。変数 config-file は、設定ファイル名です。コマンドからコミットされた場合は、デフォルトで Doxyfile と呼ばれます。設定ファイル作成でのもうひとつの便利なオプションは、ファイル名にマイナス記号 (-) を使うことです。これは、標準出力 (stdin) から設定ファイルを Doxygen に読み取らせるようにするため、スクリプティングに便利なものです。
TAGNAME = VALUE1 VALUE2...
doxywizard と呼ばれる GUI インターフェースもあります。この編集方法が望ましい場合は、機能についてのドキュメントは Doxygen ドキュメント Web サイトの 『Doxywizard usage page』 にあります。
INPUTC もしくは C++ ソースとヘッダーファイルで主に構成されている小規模プロジェクトの場合、なにも変更する必要はありません。ただし、プロジェクトが大型でソースディレクトリーやツリーで構成されている場合は、root ディレクトリー (単数または複数) を INPUT タグに割り当てます。
FILE_PATTERNS
ファイルパターン (たとえば、*.cpp や *.h) をこのタグに追加し、パターンのいずれかに適合するファイルのみを解析させることができます。
RECURSIVE
この設定を yes にすると、ソースツリーの再帰分析が可能になります。
EXCLUDE および EXCLUDE_PATTERNS
これらは、回避するファイルパターンを追加することで解析されるファイルをさらに細かくチューニングするために使用されます。たとえば、ソースツリーからすべての test ディレクトリーを省略するには、EXCLUDE_PATTERNS = */test/* を使用します。
EXTRACT_ALL
これを yes に設定すると、doxygen はプロジェクトが完全に文書化されるとどのように見えるかが分かるように、ソースファイル内のすべてが文書化されているかのように振る舞います。しかし、このモードでは、文書化されていないメンバーに関する警告は生成されません。終了時これを修正するには、no に設定を戻します。
SOURCE_BROWSER および INLINE_SOURCES
SOURCE_BROWSER タグを yes に設定すると、doxygen は相互参照を生成し、ソースファイル内で存在するドキュメントでソフトウェアの定義について分析します。これらのソースは、INLINE_SOURCES を yes に設定することでドキュメント内に含めることもできます。
9.1.3. Doxygen の実行 リンクのコピーリンクがクリップボードにコピーされました!
doxygen config-file を実行すると、html、rtf、latex、xml、および/または man ディレクトリーが doxygen が開始されたディレクトリー内に作成され、対応するファイルタイプのドキュメントが含まれます。
HTML OUTPUT
このドキュメントは、カスケードスタイルシート (CSS) や一部では DHTML や Javascript をサポートする HTML ブラウザーで閲覧することができます。ブラウザー (たとえば、Mozilla、Safari、Konqueror、Internet Explorer 6) を html の index.html に向けます。
LaTeX OUTPUT
Doxygen は、Makefile を latex ディレクトリーに書き込み、Latex ドキュメントの最初のコンパイルを容易にします。これを行うには、最新の teTeX ディストリビューションを使用します。このディレクトリーに含まれるものは、USE_PDFLATEX が no に設定されているかどうかに依存します。設定されている場合は、latex ディレクトリーで make と入力すると、refman.dvi が生成されます。これは、xdvi で閲覧するか、refman.ps と入力して make ps に変換することができます。これには dvips が必要であることに注意してください。
make ps_2on1 は 2 ページを 1 ページに印刷できます。また、ghostscript インタプリターがインストールされていれば、make pdf コマンドで PDF に変換することもできます。ほかには make pdf_2on1 も有効なコマンドです。これを実行する際は、PDF_HYPERLINKS および USE_PDFLATEX タグを yes に設定します。こうすることで、Makefile には refman.pdf を直接ビルドするターゲットのみが含まれることになります。
RTF OUTPUT
このファイルは、RTF 出力を単一ファイルである refman.rtf と組み合わせることで Microsoft Word にインポートするように設計されています。情報の中にはフィールドを使ってエンコードされるものもありますが、これはすべてを選択し (CTRL+A または 編集 -> すべて選択)、右クリックをして toggle fields オプションをドロップダウンメニューから選ぶと表示することができます。
XML OUTPUT
xml ディレクトリーへの出力は多くのファイルで構成され、各複合ファイルは index.xml に加えて doxygen が収集したものです。XSLT スクリプトである combine.xslt も、すべての XML ファイルを単一ファイルに組み合わせるために作成されます。また、インデックスファイル用の index.xsd と複合ファイル用の compound.xsd という 2 つのXML スキーマファイルが作成され、これらは可能性のある要素、それらの属性、それらの構成方法を説明します。
MAN PAGE OUTPUT
man ディレクトリーからのドキュメントは、manpath の man path に正確な man ディレクトリーがあることを確認した後で man プログラムを使って閲覧できます。man ページ形式の制限により、図や相互参照、式といった情報は失われることに留意してください。
9.1.4. ソースの文書化 リンクのコピーリンクがクリップボードにコピーされました!
- まず、
EXTRACT_ALLがnoに設定され、警告が正確に生成され、ドキュメントが適切にビルドされることを確認します。これにより、doxygen は文書化されたメンバー、ファイル、クラス、ネームスペースのドキュメントを作成できます。 - このドキュメントを作成するには 2 つの方法があります。
- 特別な ドキュメントブロック
- このコメントブロックには追加のマーキングが含まれていることで Doxygen はこれがドキュメントの一部であることが分かり、C もしくは C++ で書かれています。簡単な説明もしくは詳細な説明で構成されています。これらはどちらもオプションです。しかし、本文 の説明はオプションではありません。これがメソッドもしくは関数の本文で見つかるすべてのコメントブロックを結びつけます。
注記
簡単もしくは詳細な説明は 1 つ以上が認められますが、順番が指定されないのでこれは推奨されません。以下で、コメントブロックを詳細な説明としてマークする方法を詳述します。- JavaDoc スタイルで 2 つのアスタリスク (*) で始まる C スタイルコメントブロック
/** * ... documentation ... */
/** * ... documentation ... */Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Qt スタイルを使用した C スタイルコメントブロック。もうひとつのアスタリスクの代わりに感嘆符 (!) で構成されています。
/*! * ... documentation ... */
/*! * ... documentation ... */Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ドキュメント行の最初のアスタリスクは、なくても構いません。
- C++ では最初と最後の行は空白でもよく、スラッシュ 3 つか、スラッシュ 2 つと感嘆符を付けます。
/// /// ... documentation ///
/// /// ... documentation ///Copy to Clipboard Copied! Toggle word wrap Toggle overflow または//! //! ... documentation ... //!
//! //! ... documentation ... //!Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 別の方法としては、コメントブロックをより見やすくするために、アスタリスクもしくはスラッシュの行を使うことができます。
///////////////////////////////////////////////// /// ... documentation ... /////////////////////////////////////////////////
///////////////////////////////////////////////// /// ... documentation ... /////////////////////////////////////////////////Copy to Clipboard Copied! Toggle word wrap Toggle overflow または/********************************************//** * ... documentation ... ***********************************************/
/********************************************//** * ... documentation ... ***********************************************/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通常のコメントブロックの最後にあるスラッシュ 2 つが特別なコメントブロックの開始となっていることに注意してください。
ドキュメントに簡単な説明を加えるには 3 つの方法があります。- 簡単な説明を追加するには、コメントブロックの上に
\briefを使います。この簡単なセクションは段落の最後で終わり、それ以降の段落は詳細な説明になります。/*! \brief brief documentation. * brief documentation. * * detailed documentation. */
/*! \brief brief documentation. * brief documentation. * * detailed documentation. */Copy to Clipboard Copied! Toggle word wrap Toggle overflow JAVADOC_AUTOBRIEFをyesに設定することで、簡単な説明は最初のドットとその後の空白もしくは新たな行までしか続きません。このため、簡単な説明は単一行に制限されています。/** Brief documentation. Detailed documentation continues * from here. */
/** Brief documentation. Detailed documentation continues * from here. */Copy to Clipboard Copied! Toggle word wrap Toggle overflow これは、上記の 3 つのスラッシュ (///) のコメントブロックでも使用できます。- 3 つ目のオプションは、特別な C++ スタイルコメントを使用して、1 行以上に及ばないようにします。
/// Brief documentation. /** Detailed documentation. */
/// Brief documentation. /** Detailed documentation. */Copy to Clipboard Copied! Toggle word wrap Toggle overflow または//! Brief documentation. //! Detailed documentation //! starts here
//! Brief documentation. //! Detailed documentation //! starts hereCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例の空白の行は、簡単な説明と詳細な説明を分けるために必要で、JAVADOC_AUTOBRIEFをnoに設定する必要があります。
Qt スタイルを使って文書化された C++ コードの例は、『Doxygen documentation website』 にあります。ファイル、構造体、ユニオン、クラス、enum のメンバーの後にドキュメントを持ってくることも可能です。 < マーカーをコメントブロック \ の後に追加します。int var; /*!< detailed description after the member */
int var; /*!< detailed description after the member */Copy to Clipboard Copied! Toggle word wrap Toggle overflow Qt スタイルでは以下のようになります。int var; /**< detailed description after the member */
int var; /**< detailed description after the member */Copy to Clipboard Copied! Toggle word wrap Toggle overflow またはint var; //!< detailed description after the member //!<int var; //!< detailed description after the member //!<Copy to Clipboard Copied! Toggle word wrap Toggle overflow またはint var; ///< detailed description after the member ///<int var; ///< detailed description after the member ///<Copy to Clipboard Copied! Toggle word wrap Toggle overflow メンバーユースの後の簡単な説明は、以下のようになります。int var; //!< brief description after the member
int var; //!< brief description after the memberCopy to Clipboard Copied! Toggle word wrap Toggle overflow またはint var; ///< brief description after the member
int var; ///< brief description after the memberCopy to Clipboard Copied! Toggle word wrap Toggle overflow これらの例と HTML の作成方法は 『Doxygen documentation website』 で確認できます。 - 他の場合でのドキュメント
- 文書化しているコードの前にドキュメントを置くのが望まれますが、特にファイルを文書化する場合などはファイルの前にドキュメントを置くことは不可能なので、異なる場所にしか置けない場合もあります。異なる場所に置くと情報の重複が発生する可能性があるので、絶対に必要な場合以外はこれを避けることが最善策となります。これを行うには、構造コマンドをドキュメントブロック内に持つことが重要になります。構造コマンドは JavaDoc では、バックスラッシュ (\) もしくはアットマーク (@) で始まり、その後に 1 つ以上のパラメーターが続きます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、\classコマンドが使われています。これは、コメントブロックにクラス 'Test' のドキュメントが含まれていることを示しています。他の例では、\struct: C 構造体を文書化します。\union: union を文書化します。\enum: 列挙タイプを文書化します。\fn: 関数を文書化します。\var: 変数、typedef、enum 値を文書化します。\def: #define を文書化します。\typedef: document a type definition\file: ファイルを文書化します。\namespace: ネームスペースを文書化します。\package: Java パッケージを文書化します。\interface: IDL インターフェースを文書化します。
- 次に、特別なドキュメントブロックを HTML および / Latex 出力ディレクトリーに書き込む前に、解析します。以下の手順が含まれます。
- 特別なコマンドを実行します。
- 空白およびアスタリスク (*) をすべて削除します。
- 空白の行を新たな段落として取り扱います。
- 単語が対応するドキュメントにリンク付されます。単語の前にパーセンテージ記号 (%) がある場合は、その記号を削除して単語を残します。
- テキストに特定のパターンが見つかった場合は、メンバーへのリンクが作成されます。この例は、Doxygen ドキュメント Web サイトの 『automatic link generation page』 にあります。
- ドキュメントが Latex についての場合は、HTML タグが Latex のタグに相当するものに変換されます。サポート対象の HTML タグは Doxygen ドキュメント Web サイトの 『HTML commands page』 にあります。
付録A 付録 リンクのコピーリンクがクリップボードにコピーされました!
A.1. mallopt リンクのコピーリンクがクリップボードにコピーされました!
mallopt は、プログラムによる malloc メモリアロケータの動作の変更を可能にするライブラリーコールです。
例A.1 アロケータヒューリスティック
mmap を割り当てようとし、後者には sbrk を割り当てようとします。
M_MMAP_THRESHOLD を設定します。
mallopt インターフェースを使って作成可能な arenas 数を制限します。
mallopt を使うと、開発者はこれらの制限を無効に出来ます。
例A.2 mallopt
mallopt (M_ARENA_MAX, 8);
mallopt (M_ARENA_MAX, 8);
mallopt の最初の引数は、以下のものが可能です。
- M_MXFAST
- M_TRIM_THRESHOLD
- M_TOP_PAD
- M_MMAP_THRESHOLD
- M_MMAP_MAX
- M_CHECK_ACTION
- M_PERTURB
- M_ARENA_TEST
- M_ARENA_MAX
malloc_trim リンクのコピーリンクがクリップボードにコピーされました!
malloc_trim は、アロケータに未使用のメモリをオペレーティングシステムに戻すように要求するライブラリーコールです。これは、オブジェクトが解放済みの場合、通常は自動で行われます。しかし、小さいオブジェクトを解放している場合、 glibc がメモリを即座にオペレーティングシステムに戻さないこともあります。この理由は、メモリをオペレーティングシステムからリリースさせて割り当てるのは高くつき、空きメモリは来たるべきメモリ割り当て要求を満たすために使用できるからです。
malloc_stats リンクのコピーリンクがクリップボードにコピーされました!
malloc_stats は、アロケータの内部状態を stderr にダンプするために使用されます。mallinfo はこれに似ていますが、代わりに状態を構造体に置きます。
追加情報 リンクのコピーリンクがクリップボードにコピーされました!
mallopt に関する追加情報は http://www.makelinux.net/man/3/M/mallopt および http://www.gnu.org/software/libc/manual/html_node/Malloc-Tunable-Parameters.html にあります。
付録B 改訂履歴 リンクのコピーリンクがクリップボードにコピーされました!
| 改訂履歴 | |||
|---|---|---|---|
| 改訂 2-56.2 | Tue Jul 5 2016 | ||
| |||
| 改訂 2-56.1 | Tue Jul 5 2016 | ||
| |||
| 改訂 2-56 | Tue Jul 6 2015 | ||
| |||
| 改訂 2-55 | Wed Apr 15 2015 | ||
| |||
| 改訂 2-54 | Tue Dec 16 2014 | ||
| |||
| 改訂 2-52 | Wed Nov 11 2014 | ||
| |||
| 改訂 2-51 | Fri Oct 10 2014 | ||
| |||
索引
シンボル
- .spec file
- specfile Editor
- コンパイルおよびビルド, Eclipse RPM ビルディング, Eclipse Built-in Specfile Editor
- アーキテクチャー、KDE4
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- インストール
- debuginfo-packages
- デバッグ, Debuginfo パッケージのインストール
- インターフェース (CLI およびマシン)
- GNU デバッガー, GDB の代替ユーザーインターフェース
- インデックス化
- libhover
- ライブラリーおよびランタイムサポート, libhover プラグイン
- ウィジェットツールキット
- Qt
- ライブラリーおよびランタイムのサポート, Qt
- カーネル情報パッケージ
- プロファイル
- SystemTap, SystemTap
- キーボードショートカットの設定
- 統合開発環境
- Eclipse, キーボードショートカット
- キーボードショートカットメニュー
- 統合開発環境
- Eclipse, キーボードショートカット
- クイックアクセスメニュー
- 統合開発環境
- Eclipse, クイックアクセスメニュー
- コマンド
- ツール
- Performance Counters for Linux (PCL) ツールおよび perf, Perf ツールコマンド
- プロファイル
- Valgrind, Valgrind ツール
- 基本
- GNU デバッガー, 単純な GDB
- コンテンツ (ヘルプコンテンツ)
- ヘルプシステム
- Eclipse, Eclipse のドキュメント
- コンパイルおよびビルド
- Autotools, Autotools
- Eclipse 用プラグイン, Eclipse 用の Autotools プラグイン
- テンプレート (サポート対象), Eclipse 用の Autotools プラグイン
- ドキュメント, Autotools のドキュメント
- 一般的に使用されるコマンド, Autotools
- 設定スクリプト, 設定スクリプト
- build-id, build-id バイナリーの一意の ID
- Eclipse の CDT, Eclipse の CDT
- Autotools プロジェクト, Autotools プロジェクト
- Managed Make プロジェクト, Managed Make プロジェクト
- Standard Make プロジェクト, Standard Make プロジェクト
- GNU コンパイラーコレクション, GNU コンパイラーコレクション (GCC)
- ドキュメント, GCC のドキュメント
- 使用, GCC の実行
- 必要なパッケージ, GCC の実行
- specfile Editor, Eclipse RPM ビルディング, Eclipse Built-in Specfile Editor
- Eclipse 用プラグイン, Eclipse RPM ビルディング, Eclipse Built-in Specfile Editor
- 分散コンパイル, 分散コンパイル
- 必要なパッケージ, 分散コンパイル
- 概要, コンパイルおよびビルド
- コンパイルサーバー
- SystemTap, SystemTap コンパイルサーバー
- コンパイルサーバー接続の承認
- SSL および認証管理
- SystemTap, コンパイルサーバー接続の承認
- サブシステム (PCL)
- プロファイル
- Performance Counters for Linux (PCL) ツールおよび perf, Performance Counters for Linux (PCL) ツールおよび perf
- サブパッケージ
- Boost
- ライブラリーおよびランタイムサポート, Boost
- サポート対象のテンプレート
- Autotools
- コンパイルおよびビルド, Eclipse 用の Autotools プラグイン
- スクリプト (SystemTap スクリプト)
- プロファイル
- SystemTap, SystemTap
- スレッドおよびスレッド化されたデバッグ
- GNU デバッガー, 個別スレッドのデバッグ
- ツール
- GNU デバッガー, 単純な GDB
- OProfile, OProfile のツール
- Performance Counters for Linux (PCL) ツールおよび perf, Perf ツールコマンド
- Valgrind, Valgrind ツール
- プロファイル
- Valgrind, Valgrind ツール
- ツールバーの表示
- 統合開発環境
- Eclipse, パースペクティブのカスタマイズ
- テンプレート (サポート対象)
- Autotools
- コンパイルおよびビルド, Eclipse 用の Autotools プラグイン
- デバッグ
- debuginfo-packages, Debuginfo パッケージのインストール
- インストール, Debuginfo パッケージのインストール
- Eclipse による C/C++ アプリケーションのデバッグ, Eclipse による C/C++ アプリケーションのデバッグ
- GNU デバッガー, GDB
- Python pretty-printer, Python Pretty-Printer
- pretty-printer, Python Pretty-Printer
- デバッグ出力 (フォーマット済み), Python Pretty-Printer
- ドキュメント, Python Pretty-Printer
- 利点, Python Pretty-Printer
- variable tracking at assignments (VTA), Variable Tracking at Assignments
- 概要, デバッグ
- デバッグ出力 (フォーマット済み)
- Python pretty-printer
- デバッグ, Python Pretty-Printer
- デフォルト
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- ドキュメント
- Autotools
- コンパイルおよびビルド, Autotools のドキュメント
- Boost
- ライブラリーおよびランタイムサポート, Boost ドキュメント
- Doxygen, Doxygen
- Doxygen の実行, Doxygen の実行
- ソースの文書化, ソースの文書化
- リソース, リソース
- 使用開始, 使用開始
- 対応の出力および言語, Doxygen 対応の出力および言語
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリードキュメント
- GNU コンパイラーコレクション
- コンパイルおよびビルド, GCC のドキュメント
- GNU デバッガー, GDB ドキュメント
- Java
- ライブラリーおよびランタイムサポート, Java ドキュメント
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, kdelibs ドキュメント
- OProfile
- プロファイル, OProfile のドキュメント
- Perl
- ライブラリーおよびランタイムサポート, Perl のドキュメント
- Python
- ライブラリーおよびランタイムサポート, Python ドキュメント
- Python pretty-printer
- デバッグ, Python Pretty-Printer
- Qt
- ライブラリーおよびランタイムサポート, Qt ライブラリードキュメント
- Ruby
- ライブラリーおよびランタイムサポート, Ruby ドキュメント
- SystemTap
- プロファイル, SystemTap のドキュメント
- Valgrind
- プロファイル, Valgrind のドキュメント
- プロファイル
- ftrace, ftrace のドキュメント
- ドキュメントツール, ドキュメントツール
- パースペクティブ
- 統合開発環境
- Eclipse, Eclipse ユーザーインターフェース
- パースペクティブメニューのカスタマイズ
- 統合開発環境
- Eclipse, パースペクティブのカスタマイズ
- ビルド
- コンパイルおよびビルド, コンパイルおよびビルド
- フォークされる実行
- GNU デバッガー, フォークされる実行
- フォーマット済みデバッグ出力
- Python pretty-printer
- デバッグ, Python Pretty-Printer
- フレームワーク (ftrace)
- プロファイル
- ftrace, ftrace
- ブレークポイント (条件付き)
- GNU デバッガー, 条件付きブレークポイント
- プロジェクト
- Eclipse, Eclipse プロジェクトの開始
- プロファイル
- Eclipse, Eclipse 用の Valgrind プラグイン, Eclipse 用の OProfile プラグイン
- Profile As, Eclipse 用の Valgrind プラグイン, Eclipse 用の OProfile プラグイン
- Profile Configuration Menu (プロファイル設定メニュー), Eclipse 用の Valgrind プラグイン, Eclipse 用の OProfile プラグイン
- ftrace, ftrace
- OProfile, OProfile
- oprofiled, OProfile
- perf と oprofile の競合, OProfile の使用, Perf の使用方法
- Performance Counters for Linux (PCL) ツールおよび perf, Performance Counters for Linux (PCL) ツールおよび perf
- SystemTap, SystemTap
- Valgrind, Valgrind
- 概要, プロファイル
- ヘルプシステム
- Eclipse, Eclipse のドキュメント
- ホスト (コンパイルサーバーホスト)
- コンパイルサーバー
- SystemTap, SystemTap コンパイルサーバー
- ホバーヘルプ
- libhover
- ライブラリーおよびランタイムサポート, 設定および使用方法
- マシンインターフェース
- GNU デバッガー, GDB の代替ユーザーインターフェース
- メカニズム
- GNU デバッガー
- デバッグ, GDB
- メタパッケージ
- Boost
- ライブラリーおよびランタイムサポート, Boost
- メニュー (ヘルプメニュー)
- ヘルプシステム
- Eclipse, Eclipse のドキュメント
- メニュー (メインメニュー)
- 統合開発環境
- Eclipse, Eclipse ユーザーインターフェース
- モジュールのインストール
- Perl
- ライブラリーおよびランタイムサポート, インストール
- モジュール署名 (コンパイルサーバーの承認)
- SSL および認証管理
- SystemTap, コンパイルサーバーのモジュール署名の承認 (特権のないユーザー)
- ユーザーインターフェース
- 統合開発環境
- Eclipse, Eclipse ユーザーインターフェース
- ライブラリー
- ランタイムのサポート, ライブラリーおよびランタイムのサポート
- ライブラリーおよびランタイムのサポート
- Boost, Boost
- boost-doc, Boost ドキュメント
- message passing interface (MPI), Boost
- MPICH2, Boost
- Open MPI, Boost
- サブパッケージ, Boost
- ドキュメント, Boost ドキュメント
- メタパッケージ, Boost
- 新規ライブラリー, Boost 更新
- 更新, Boost 更新
- C++ 標準ライブラリー、GNU, GNU C++ 標準ライブラリー
- compat-glibc, compat-glibc
- GNOME の電源管理, GNOME の電源管理
- gnome-power-manager, GNOME の電源管理
- GNU C++ 標準ライブラリー, GNU C++ 標準ライブラリー
- C++0x、サポート強化, GNU C++ 標準ライブラリー更新
- ISO 14482 標準 C++ ライブラリー, GNU C++ 標準ライブラリー
- ISO C++ TR1 要素、サポート強化, GNU C++ 標準ライブラリー更新
- libstdc++-devel, GNU C++ 標準ライブラリー
- libstdc++-docs, GNU C++ 標準ライブラリードキュメント
- ドキュメント, GNU C++ 標準ライブラリードキュメント
- 更新, GNU C++ 標準ライブラリー更新
- 標準テンプレートライブラリー, GNU C++ 標準ライブラリー
- Java, Java
- ドキュメント, Java ドキュメント
- KDE 開発フレームワーク, KDE 開発フレームワーク
- Akonadi, KDE4 アーキテクチャー
- KDE4 アーキテクチャー, KDE4 アーキテクチャー
- kdelibs-devel, KDE 開発フレームワーク
- KHTML, KDE4 アーキテクチャー
- KIO, KDE4 アーキテクチャー
- KJS, KDE4 アーキテクチャー
- KNewStuff2, KDE4 アーキテクチャー
- KXMLGUI, KDE4 アーキテクチャー
- Phonon, KDE4 アーキテクチャー
- Plasma, KDE4 アーキテクチャー
- Solid, KDE4 アーキテクチャー
- Sonnet, KDE4 アーキテクチャー
- Strigi, KDE4 アーキテクチャー
- Telepathy, KDE4 アーキテクチャー
- ドキュメント, kdelibs ドキュメント
- libstdc++, GNU C++ 標準ライブラリー
- Perl, Perl
- ドキュメント, Perl のドキュメント
- モジュールのインストール, インストール
- 更新, Perl 更新
- Python, Python
- ドキュメント, Python ドキュメント
- 更新, Python 更新
- Qt, Qt
- meta object compiler (MOC), Qt
- Qt Creator, Qt Creator
- qt-doc, Qt ライブラリードキュメント
- ウィジェットツールキット, Qt
- ドキュメント, Qt ライブラリードキュメント
- 更新, Qt 更新
- Ruby, Ruby
- ruby-devel, Ruby
- ドキュメント, Ruby ドキュメント
- 互換性, 互換性
- 概要, ライブラリーおよびランタイムのサポート
- ライブラリーおよびランタイムの詳細
- NSS 共有データベース, NSS 共有データベース
- ドキュメント, NSS 共有データベース のドキュメント
- 後方互換性, 後方互換性
- ライブラリーおよびランタイムサポート
- libhover
- Code Completion, 設定および使用方法
- インデックス化, libhover プラグイン
- ホバーヘルプ, 設定および使用方法
- 使用方法, 設定および使用方法
- ランタイムのサポート
- ライブラリー, ライブラリーおよびランタイムのサポート
- リスト
- ツール
- Performance Counters for Linux (PCL) ツールおよび perf, Perf ツールコマンド
- レポート
- ツール
- Performance Counters for Linux (PCL) ツールおよび perf, Perf ツールコマンド
- ワークスペース (概要)
- プロジェクト
- Eclipse, Eclipse プロジェクトの開始
- ワークベンチ
- 統合開発環境
- Eclipse, Eclipse ユーザーインターフェース
- 一般的に使用されるコマンド
- Autotools
- コンパイルおよびビルド, Autotools
- 互換性
- ライブラリーおよびランタイムのサポート, 互換性
- 使用
- GNU コンパイラーコレクション
- コンパイルおよびビルド, GCC の実行
- 使用方法
- libhover
- ライブラリーおよびランタイムサポート, 設定および使用方法
- Performance Counters for Linux (PCL) ツールおよび perf, Perf の使用方法
- プロファイル
- ftrace, ftrace の使用方法
- 使用法
- GNU デバッガー, GDB の実行
- 基本, 単純な GDB
- Valgrind
- プロファイル, Valgrind の使用
- プロファイル
- OProfile, OProfile の使用
- 分散コンパイル
- コンパイルおよびビルド, 分散コンパイル
- 利点
- Python pretty-printer
- デバッグ, Python Pretty-Printer
- 動的ヘルプ
- ヘルプシステム
- Eclipse, Eclipse のドキュメント
- 協同作業, 協同作業
- 基本
- GNU デバッガー, 単純な GDB
- 基本コマンド
- 基本
- GNU デバッガー, 単純な GDB
- 基本的なメカニズム
- GNU デバッガー
- デバッグ, GDB
- 実行 (フォークされる)
- GNU デバッガー, フォークされる実行
- 実行可能ファイルの停止
- 基本
- GNU デバッガー, 単純な GDB
- 実行可能ファイルの状態の検査
- 基本
- GNU デバッガー, 単純な GDB
- 実行可能ファイルの開始
- 基本
- GNU デバッガー, 単純な GDB
- 導入
- Eclipse, Eclipse の開発環境
- 必要なパッケージ
- 技術的概要
- プロジェクト
- Eclipse, Eclipse プロジェクトの開始
- 接続の承認 (コンパイルサーバー)
- SSL および認証管理
- SystemTap, コンパイルサーバー接続の承認
- 新規ライブラリー
- Boost
- ライブラリーおよびランタイムサポート, Boost 更新
- 新規拡張子
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー更新
- 更新
- Boost
- ライブラリーおよびランタイムサポート, Boost 更新
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー更新
- Perl
- ライブラリーおよびランタイムサポート, Perl 更新
- Python
- ライブラリーおよびランタイムサポート, Python 更新
- Qt
- ライブラリーおよびランタイムサポート, Qt 更新
- 条件付きブレークポイント
- GNU デバッガー, 条件付きブレークポイント
- 概要
- コンパイルおよびビルド, コンパイルおよびビルド
- デバッグ, デバッグ
- プロファイル, プロファイル
- SystemTap, SystemTap
- ライブラリーおよびランタイムのサポート, ライブラリーおよびランタイムのサポート
- 標準テンプレートライブラリー
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー
- 機能トレーサー
- プロファイル
- ftrace, ftrace
- 特権のないユーザー
- 特権のないユーザーのサポート
- SystemTap, 特権のないユーザーに対する SystemTap のサポート
- 特権のないユーザーのサポート
- SystemTap, 特権のないユーザーに対する SystemTap のサポート
- 種類および環境
- GNU デバッガー, GDB の代替ユーザーインターフェース
- 統合開発環境
- Eclipse, Eclipse ユーザーインターフェース
- 署名済みのモジュール
- 特権のないユーザーのサポート
- SystemTap, 特権のないユーザーに対する SystemTap のサポート
- 署名済みモジュール
- SSL および認証管理
- SystemTap, コンパイルサーバーのモジュール署名の承認 (特権のないユーザー)
- 自動承認
- SSL および認証管理
- SystemTap, 自動承認
- 要件
- GNU デバッガー
- デバッグ, GDB
- 記録
- ツール
- Performance Counters for Linux (PCL) ツールおよび perf, Perf ツールコマンド
- 設定
- libhover
- ライブラリーおよびランタイムサポート, 設定および使用方法
- 設定スクリプト
- Autotools
- コンパイルおよびビルド, 設定スクリプト
- 認証管理
- SSL および認証管理
- SystemTap, SSL および認証管理
- 追跡されたコメント
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
A
- Akonadi
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- Autotools
- コンパイルおよびビルド, Autotools
B
- backtrace
- ツール
- GNU デバッガー, 単純な GDB
- binutils
- Boost
- ライブラリーおよびランタイムのサポート, Boost
- boost-doc
- Boost
- ライブラリーおよびランタイムサポート, Boost ドキュメント
- breakpoint
- 基本
- GNU デバッガー, 単純な GDB
- build-id
- コンパイルおよびビルド, build-id バイナリーの一意の ID
C
- C Hello World プログラムのコンパイル
- 使用
- GCC, シンプルな C の使用
- C++ Hello World プログラムのコンパイル
- 使用
- GCC, シンプルな C++ の使用
- C++ 標準ライブラリー、GNU
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー
- C++0x、サポート強化
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー更新
- C/C++ ソースコード
- Eclipse, Eclipse での C/C++ ソースコードの編集
- cachegrind
- ツール
- Valgrind, Valgrind ツール
- callgrind
- ツール
- Valgrind, Valgrind ツール
- Code Completion
- libhover
- ライブラリーおよびランタイムサポート, 設定および使用方法
- Command Group Availability タブ
- 統合開発環境
- Eclipse, パースペクティブのカスタマイズ
- compat-glibc
- ライブラリーおよびランタイムのサポート, compat-glibc
- Console View
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- continue
- ツール
- GNU デバッガー, 単純な GDB
D
- debugfs ファイルシステム
- プロファイル
- ftrace, ftrace
- debuginfo-packages
- デバッグ, Debuginfo パッケージのインストール
- Doxygen
- ドキュメント, Doxygen
- Doxygen の実行, Doxygen の実行
- ソースの文書化, ソースの文書化
- リソース, リソース
- 使用開始, 使用開始
- 対応の出力および言語, Doxygen 対応の出力および言語
- dwz
- Dyninst
E
- Eclipse
- C/C++ ソースコード, Eclipse での C/C++ ソースコードの編集
- Java 開発, Eclipse での Java ソースコードの編集
- libhover pluプラグイン, libhover プラグイン
- RPM ビルディング, Eclipse RPM ビルディング
- クイックアクセスメニュー, クイックアクセスメニュー
- ドキュメント, Eclipse のドキュメント
- バージョン, Red Hat Developer Toolset が提供するもの
- プロジェクト, Eclipse プロジェクトの開始
- New Project ウィザード, Eclipse プロジェクトの開始
- Workspace Launcher, Eclipse プロジェクトの開始
- ワークスペース (概要), Eclipse プロジェクトの開始
- 技術的概要, Eclipse プロジェクトの開始
- プロファイル, Eclipse 用の Valgrind プラグイン, Eclipse 用の OProfile プラグイン
- ヘルプシステム, Eclipse のドキュメント
- Workbench User Guide, Eclipse のドキュメント
- コンテンツ (ヘルプコンテンツ), Eclipse のドキュメント
- メニュー (ヘルプメニュー), Eclipse のドキュメント
- 動的ヘルプ, Eclipse のドキュメント
- ユーザーインターフェース, Eclipse ユーザーインターフェース
- Console View, Eclipse ユーザーインターフェース
- Editor, Eclipse ユーザーインターフェース
- Outline Window, Eclipse ユーザーインターフェース
- Problems View, Eclipse ユーザーインターフェース
- Project Explorer, Eclipse ユーザーインターフェース
- quick fix (Problems View), Eclipse ユーザーインターフェース
- Tasks Properties, Eclipse ユーザーインターフェース
- Tasks View, Eclipse ユーザーインターフェース
- View Menu (ボタン), Eclipse ユーザーインターフェース
- デフォルト, Eclipse ユーザーインターフェース
- 追跡されたコメント, Eclipse ユーザーインターフェース
- 導入, Eclipse の開発環境
- 統合開発環境, Eclipse ユーザーインターフェース
- Command Group Availability タブ, パースペクティブのカスタマイズ
- IDE (統合開発環境), Eclipse ユーザーインターフェース
- Menu Visibility タブ, パースペクティブのカスタマイズ
- Shortcuts タブ, パースペクティブのカスタマイズ
- キーボードショートカットの設定, キーボードショートカット
- キーボードショートカットメニュー, キーボードショートカット
- クイックアクセスメニュー, クイックアクセスメニュー
- ツールバーの表示, パースペクティブのカスタマイズ
- パースペクティブ, Eclipse ユーザーインターフェース
- パースペクティブメニューのカスタマイズ, パースペクティブのカスタマイズ
- メニュー (メインメニュー) , Eclipse ユーザーインターフェース
- ユーザーインターフェース, Eclipse ユーザーインターフェース
- ワークベンチ, Eclipse ユーザーインターフェース
- Eclipse による C/C++ アプリケーションのデバッグ
- Eclipse の CDT
- コンパイルおよびビルド, Eclipse の CDT
- Autotools プロジェクト, Autotools プロジェクト
- Managed Make プロジェクト, Managed Make プロジェクト
- Standard Make プロジェクト, Standard Make プロジェクト
- Eclipse 用のプラグイン
- プロファイル
- Valgrind, Eclipse 用の Valgrind プラグイン
- Eclipse 用プラグイン
- Autotools
- コンパイルおよびビルド, Eclipse 用の Autotools プラグイン
- specfile Editor
- コンパイルおよびビルド, Eclipse RPM ビルディング, Eclipse Built-in Specfile Editor
- Editor
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- elfutils
F
- finish
- ツール
- GNU デバッガー, 単純な GDB
- ftrace
- プロファイル, ftrace
- debugfs ファイルシステム, ftrace
- ドキュメント, ftrace のドキュメント
- フレームワーク (ftrace), ftrace
- 使用方法, ftrace の使用方法
G
- gcc
- GNU コンパイラーコレクション
- コンパイルおよびビルド, GNU コンパイラーコレクション (GCC)
- GCC C
- 使用
- C Hello World プログラムのコンパイル, シンプルな C の使用
- GCC C++
- 使用
- C++ Hello World プログラムのコンパイル, シンプルな C++ の使用
- GDB
- GNU デバッガー
- デバッグ, GDB
- Git
- インストール, Git のインストールおよび設定
- ドキュメント, その他のリソース
- 使用方法, 新規リポジトリーの作成
- 概要, Git
- 設定, Git のインストールおよび設定
- GNOME の電源管理
- ライブラリーおよびランタイムのサポート, GNOME の電源管理
- gnome-power-manager
- GNOME の電源管理
- ライブラリーおよびランタイムサポート, GNOME の電源管理
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー
- GNU Compiler Collection
- GNU Debugger
- GNU コンパイラーコレクション
- コンパイルおよびビルド, GNU コンパイラーコレクション (GCC)
- GNU デバッガー
- インターフェース (CLI およびマシン), GDB の代替ユーザーインターフェース
- スレッドおよびスレッド化されたデバッグ, 個別スレッドのデバッグ
- ツール, 単純な GDB
- デバッグ, GDB
- ドキュメント, GDB ドキュメント
- フォークされる実行, フォークされる実行
- 使用法, GDB の実行
- Hello World プログラムのデバッグ, GDB の実行
- 基本, 単純な GDB
- 実行 (フォークされる), フォークされる実行
- 条件付きブレークポイント, 条件付きブレークポイント
- 種類および環境, GDB の代替ユーザーインターフェース
H
- helgrind
- ツール
- Valgrind, Valgrind ツール
- Hello World プログラムのデバッグ
- 使用法
- GNU デバッガー, GDB の実行
- help
- ツール
- GNU デバッガー, 単純な GDB
I
- IDE (統合開発環境)
- 統合開発環境
- Eclipse, Eclipse ユーザーインターフェース
- IISO 14482 標準 C++ ライブラリー
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー
- ISO C++ TR1 要素、サポート強化
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー更新
J
- Java
- ライブラリーおよびランタイムのサポート, Java
- Java 開発
- Eclipse, Eclipse での Java ソースコードの編集
K
- KDE 開発フレームワーク
- ライブラリーおよびランタイムのサポート, KDE 開発フレームワーク
- KDE4 アーキテクチャー
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- kdelibs-devel
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE 開発フレームワーク
- KHTML
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- KIO
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- KJS
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- KNewStuff2
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- KXMLGUI
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
L
- libstdc++
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー
- libstdc++-devel
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリー
- libstdc++-docs
- GNU C++ 標準ライブラリー
- ライブラリーおよびランタイムのサポート, GNU C++ 標準ライブラリードキュメント
- list
- ツール
- GNU デバッガー, 単純な GDB
- ltrace
- version, Red Hat Developer Toolset が提供するもの
M
- mallopt, mallopt
- massif
- ツール
- Valgrind, Valgrind ツール
- memcheck
- ツール
- Valgrind, Valgrind ツール
- memstomp
- Menu Visibility タブ
- 統合開発環境
- Eclipse, パースペクティブのカスタマイズ
- message passing interface (MPI)
- Boost
- ライブラリーおよびランタイムサポート, Boost
- meta object compiler (MOC)
- Qt
- ライブラリーおよびランタイムのサポート, Qt
- MPICH2
- Boost
- ライブラリーおよびランタイムサポート, Boost
N
- New Project ウィザード
- プロジェクト
- Eclipse, Eclipse プロジェクトの開始
- next
- ツール
- GNU デバッガー, 単純な GDB
- NSS 共有データベース
- ライブラリーおよびランタイムの詳細, NSS 共有データベース
- ドキュメント, NSS 共有データベース のドキュメント
- 後方互換性, 後方互換性
O
- opannotate
- ツール
- OProfile, OProfile のツール
- oparchive
- ツール
- OProfile, OProfile のツール
- opcontrol
- ツール
- OProfile, OProfile のツール
- Open MPI
- Boost
- ライブラリーおよびランタイムサポート, Boost
- opgprof
- ツール
- OProfile, OProfile のツール
- opreport
- ツール
- OProfile, OProfile のツール
- OProfile
- ツール, OProfile のツール
- opannotate, OProfile のツール
- oparchive, OProfile のツール
- opcontrol, OProfile のツール
- opgprof, OProfile のツール
- opreport, OProfile のツール
- バージョン, Red Hat Developer Toolset が提供するもの
- プロファイル, OProfile
- ドキュメント, OProfile のドキュメント
- 使用法, OProfile の使用
- oprofiled
- OProfile
- プロファイル, OProfile
- Outline Window
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
P
- perf
- プロファイル
- Performance Counters for Linux (PCL) ツールおよび perf, Performance Counters for Linux (PCL) ツールおよび perf
- 使用方法
- Performance Counters for Linux (PCL) ツールおよび perf, Perf の使用方法
- Performance Counters for Linux (PCL) ツールおよび perf
- ツール, Perf ツールコマンド
- コマンド, Perf ツールコマンド
- リスト, Perf ツールコマンド
- レポート, Perf ツールコマンド
- 記録, Perf ツールコマンド
- プロファイル, Performance Counters for Linux (PCL) ツールおよび perf
- サブシステム (PCL), Performance Counters for Linux (PCL) ツールおよび perf
- 使用方法, Perf の使用方法
- perf, Perf の使用方法
- Perl
- ライブラリーおよびランタイムのサポート, Perl
- Phonon
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- Plasma
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- pretty-printer
- Python pretty-printer
- デバッグ, Python Pretty-Printer
- ツール
- GNU デバッガー, 単純な GDB
- Problems View
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- Profile As
- Eclipse
- Profile Configuration Menu (プロファイル設定メニュー)
- Eclipse
- Project Explorer
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- Python
- ライブラリーおよびランタイムのサポート, Python
- Python pretty-printer
- デバッグ, Python Pretty-Printer
Q
- Qt
- ライブラリーおよびランタイムのサポート, Qt
- Qt Creator
- Qt
- ライブラリーおよびランタイムのサポート, Qt Creator
- qt-doc
- Qt
- ライブラリーおよびランタイムサポート, Qt ライブラリードキュメント
- quick fix (Problems View)
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- quit
- ツール
- GNU デバッガー, 単純な GDB
R
S
- Shortcuts タブ
- 統合開発環境
- Eclipse, パースペクティブのカスタマイズ
- Solid
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- Sonnet
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- specfile Editor
- コンパイルおよびビルド, Eclipse RPM ビルディング, Eclipse Built-in Specfile Editor
- SSL および認証管理
- SystemTap, SSL および認証管理
- stat
- ツール
- Performance Counters for Linux (PCL) ツールおよび perf, Perf ツールコマンド
- step
- ツール
- GNU デバッガー, 単純な GDB
- strace
- Strigi
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
- SystemTap
- SSL および認証管理, SSL および認証管理
- モジュール署名 (コンパイルサーバーの承認), コンパイルサーバーのモジュール署名の承認 (特権のないユーザー)
- 接続の承認 (コンパイルサーバー), コンパイルサーバー接続の承認
- 自動承認, 自動承認
- コンパイルサーバー, SystemTap コンパイルサーバー
- ホスト (コンパイルサーバーホスト), SystemTap コンパイルサーバー
- バージョン, Red Hat Developer Toolset が提供するもの
- プロファイル, SystemTap
- カーネル情報パッケージ, SystemTap
- スクリプト (SystemTap スクリプト), SystemTap
- ドキュメント, SystemTap のドキュメント
- 必要なパッケージ, SystemTap
- 概要, SystemTap
- 特権のないユーザーのサポート, 特権のないユーザーに対する SystemTap のサポート
- 署名済みのモジュール, 特権のないユーザーに対する SystemTap のサポート
T
- Tasks Properties
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- Tasks View
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
- Telepathy
- KDE 開発フレームワーク
- ライブラリーおよびランタイムサポート, KDE4 アーキテクチャー
V
- Valgrind
- ツール
- cachegrind, Valgrind ツール
- callgrind, Valgrind ツール
- helgrind, Valgrind ツール
- massif, Valgrind ツール
- memcheck, Valgrind ツール
- バージョン, Red Hat Developer Toolset が提供するもの
- プロファイル, Valgrind
- Eclipse 用のプラグイン, Eclipse 用の Valgrind プラグイン
- コマンド, Valgrind ツール
- ツール, Valgrind ツール
- ドキュメント, Valgrind のドキュメント
- 使用法, Valgrind の使用
- variable tracking at assignments (VTA)
- View Menu (ボタン)
- ユーザーインターフェース
- Eclipse, Eclipse ユーザーインターフェース
W
- Workbench User Guide
- ヘルプシステム
- Eclipse, Eclipse のドキュメント
- Workspace Launcher
- プロジェクト
- Eclipse, Eclipse プロジェクトの開始