LLVM 15.0.7 Toolset の使用
LLVM 15.0.7 Toolset のインストールおよび使用
概要
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 LLVM Toolset リンクのコピーリンクがクリップボードにコピーされました!
LLVM Toolset は、Red Hat Enterprise Linux (RHEL) 上の開発者向けの Red Hat 製品です。これは、LLVM コンパイラーインフラストラクチャーフレームワーク、C 言語および C++ 言語用の Clang コンパイラー、LLDB デバッガー、コード解析の関連ツールを提供します。
LLVM Toolset は、Red Hat Developer Tools for Red Hat Enterprise Linux 7 の一部として配布されています。Red Hat Enterprise Linux 8 では、LLVM Toolset はモジュールとして利用できます。LLVM Toolset は、Red Hat Enterprise Linux 9 のパッケージとして利用できます。
1.1. LLVM Toolset コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
以下のコンポーネントは、LLVM Toolset の一部として利用できます。
| 名前 | バージョン | 説明 |
|---|---|---|
| clang | 15.0.7 | C および C++ の LLVM コンパイラーフロントエンド。 |
| lldb | 15.0.7 | LLVM の一部を使用した C および C++ デバッガー。 |
| compiler-rt | 15.0.7 | LLVM および Clang のランタイムライブラリー。 |
| llvm | 15.0.7 | 一連のモジュールおよび再利用可能なコンパイラーおよびツールチェーン技術。 |
| libomp | 15.0.7 | 並列プログラミングに Open MP API 仕様を使用するためのライブラリー。 |
| lld | 15.0.7 | LLVM リンカー。 |
| python-lit | 15.0.7 | LLVM および Clang ベースのテストスイート用のソフトウェアテストツール。 |
CMake ビルドマネージャーは、LLVM Toolset の一部ではありません。Red Hat Enterprise Linux 7 では、CMake が別のパッケージとして提供されます。Red Hat Enterprise Linux 8 では、CMake がシステムリポジトリーから利用できます。Red Hat Enterprise Linux 9 では、CMake がシステムリポジトリーから利用できます。CMake のインストール方法は、CMake ビルドマネージャーのインストール を参照してください。
1.2. LLVM Toolset の互換性 リンクのコピーリンクがクリップボードにコピーされました!
LLVM Toolset は、以下のアーキテクチャーで Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 8、および Red Hat Enterprise Linux 9 で利用できます。
- AMD および Intel 64 ビット
- 64 ビット ARM (RHEL 8 および RHEL 9)
- IBM Power Systems (リトルエンディアン)
- IBM Power Systems、ビックエンディアン (RHEL 7 のみ)
- 64 ビット IBM Z
1.3. Red Hat Enterprise Linux 7 で LLVM Toolset へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
LLVM Toolset を Red Hat Enterprise Linux 7 にインストールするには、Red Hat Developer Tools リポジトリーおよび Red Hat Software Collections リポジトリーにアクセスして有効にする必要があります。
これらのリポジトリーがすでにシステムに割り当てられている場合は、LLVM Toolset のインストール を参照してください。
手順
以下を実行して
Wgetをインストールします。yum install wget
# yum install wgetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を実行して最新のサブスクリプションデータをダウンロードします。
subscription-manager refresh
# subscription-manager refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を実行してシステムを登録します。
subscription-manager register
# subscription-manager registerCopy to Clipboard Copied! Toggle word wrap Toggle overflow グラフィカルユーザーインターフェイス (GUI) を使用してシステムを登録するには、システムの登録および登録解除 ガイドを参照してください。
利用可能なサブスクリプションの一覧を表示し、以下のコマンドを実行してプール ID を特定します。
subscription-manager list --available
# subscription-manager list --availableCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Pool IDで始まる行でプール ID を検索します。 以下を実行して、
Red Hat Developer Toolsリポジトリーへのアクセスを提供するサブスクリプションをシステムに割り当てます。subscription-manager attach --pool=<pool ID from the subscription>
# subscription-manager attach --pool=<pool ID from the subscription>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<pool ID from the subscription>を直前の手順で特定したプール ID に置き換えます。
-
以下を実行して、システムに割り当てられているサブスクリプションを確認します。
sudo subscription-manager list --consumed
# sudo subscription-manager list --consumedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を実行して
rhel-7-variant-devtools-rpmsリポジトリーを有効にします。subscription-manager repos --enable rhel-7-<variant>-devtools-rpms
# subscription-manager repos --enable rhel-7-<variant>-devtools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow <variant>をRed Hat Enterprise Linux システムのバリアント (serverまたはworkstation) に置き換えます。serverを使用して、最も幅広い開発ツールにアクセスします。
以下を実行して
rhel-variant-rhscl-7-rpmsリポジトリーを有効にします。subscription-manager repos --enable rhel-<variant>-rhscl-7-rpms
# subscription-manager repos --enable rhel-<variant>-rhscl-7-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<variant>をRed Hat Enterprise Linux システムのバリアント (serverまたはworkstation) に置き換えます。
-
以下を実行して Red Hat Developer Tools GPG キーをシステムに追加します。
cd /etc/pki/rpm-gpg wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt rpm --import RPM-GPG-KEY-redhat-devel
# cd /etc/pki/rpm-gpg # wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt # rpm --import RPM-GPG-KEY-redhat-develCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. LLVM Toolset のインストール リンクのコピーリンクがクリップボードにコピーされました!
すべての開発ツールおよびデバッグツールと依存パッケージを含む LLVM Toolset をインストールするには、以下の手順を実行します。
前提条件
-
Red Hat Enterprise Linux 7 で、Red Hat Developer Tools コンテンツセットへのアクセスを提供するサブスクリプションがシステムに割り当てられている。
サブスクリプションを割り当てるには、Red Hat Enterprise Linux 7 の LLVM Toolset へのアクセス を参照してください。 - 利用可能な Red Hat Enterprise Linux のすべての更新がインストールされている。
手順
Red Hat Enterprise Linux 7 に、llvm-toolset-15.0 コレクションをインストールします。
yum install llvm-toolset-15.0
# yum install llvm-toolset-15.0
LLDB デバッガーは Red Hat Enterprise Linux 7 にインストールされません。LLDB デバッガーをインストールするには、次を実行します。
yum install llvm-toolset-15.0-lldb
# yum install llvm-toolset-15.0-lldb
Red Hat Enterprise Linux 8 で、以下のコマンドを実行して llvm-toolset モジュールをインストールします。
yum module install llvm-toolset
# yum module install llvm-toolset
LLDB デバッガーまたは python3-lit パッケージは Red Hat Enterprise Linux 8 にインストールされません。LLDB デバッガーと python3-lit パッケージをインストールするには、次を実行します。
yum install lldb python3-lit
# yum install lldb python3-lit
Red Hat Enterprise Linux 9 で、以下のコマンドを実行して llvm-toolset パッケージをインストールします。
dnf install llvm-toolset
# dnf install llvm-toolset
LLDB デバッガーまたは python3-lit パッケージは Red Hat Enterprise Linux 9 にインストールされません。LLDB デバッガーと python3-lit パッケージをインストールするには、次を実行します。
dnf install lldb python3-lit
# dnf install lldb python3-lit
1.5. CMake ビルドマネージャーのインストール リンクのコピーリンクがクリップボードにコピーされました!
CMake ビルドマネージャーは、ソースコードのビルドプロセスをコンパイラーとは別に管理するツールです。CMake は、ソースコードのコンパイル、ライブラリーの作成、ラッパーの生成、実行可能なファイルの構築を行うネイティブビルド環境を生成できます。
CMake ビルドマネージャーをインストールするには、以下の手順を実行します。
前提条件
-
LLVM Toolset がインストールされている。
詳細は、LLVM Toolset のインストール を参照してください。
手順
CMake をインストールするには、以下のコマンドを実行します。
- Red Hat Enterprise Linux 7 の場合:
yum install llvm-toolset-15.0-cmake
# yum install llvm-toolset-15.0-cmake
- Red Hat Enterprise Linux 8 の場合:
yum install cmake
# yum install cmake
- Red Hat Enterprise Linux 9 の場合:
dnf install cmake
# dnf install cmake
関連情報
- CMake ビルドマネージャーの詳細は、公式の CMake ドキュメント About CMake を参照してください。
CMake ビルドマネージャーの使用の概要は、以下を参照してください。
- CMake リファレンスドキュメントの Introduction
- 公式の CMake ドキュメント CMake Tutorial
1.6. LLVM Toolset ドキュメントのインストール リンクのコピーリンクがクリップボードにコピーされました!
LLVM Toolset のドキュメントは、ローカルシステムにインストールできます。
前提条件
-
LLVM Toolset がインストールされている。
詳細は、LLVM Toolset のインストール を参照してください。
手順
llvm-doc パッケージをインストールするには、以下のコマンドを実行します。
Red Hat Enterprise Linux 7 の場合:
yum install llvm-toolset-15.0-llvm-doc
# yum install llvm-toolset-15.0-llvm-docCopy to Clipboard Copied! Toggle word wrap Toggle overflow このドキュメントは、
/opt/rh/llvm-toolset-15.0/root/usr/share/doc/llvm-toolset-15.0-llvm-15.0.7/html/index.htmlパスにあります。Red Hat Enterprise Linux 8 の場合:
yum install llvm-doc
# yum install llvm-docCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドキュメントは、
/usr/share/doc/llvm/html/index.htmlの下にあります。Red Hat Enterprise Linux 9 の場合:
dnf install llvm-doc
# dnf install llvm-docCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドキュメントは、
/usr/share/doc/llvm/html/index.htmlの下にあります。
1.7. CMake ドキュメントのインストール リンクのコピーリンクがクリップボードにコピーされました!
CMake ビルドマネージャーのドキュメントをローカルシステムにインストールできます。
前提条件
-
Cmake がインストールされている。
詳細は、CMake ビルドマネージャーのインストール を参照してください。
手順
cmake-doc パッケージをインストールするには、以下のコマンドを実行します。
Red Hat Enterprise Linux 7 の場合:
yum install llvm-toolset-15.0-cmake-doc
# yum install llvm-toolset-15.0-cmake-docCopy to Clipboard Copied! Toggle word wrap Toggle overflow このドキュメントは、
opt/rh/llvm-toolset-15.0/root/usr/share/doc/llvm-toolset-15.0-cmake-3.18.2/html/index.htmlパスにあります。Red Hat Enterprise Linux 8 の場合:
yum install cmake-doc
# yum install cmake-docCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドキュメントは、
/usr/share/doc/cmake/html/index.htmlの下にあります。Red Hat Enterprise Linux 9 の場合:
dnf install cmake-doc
# dnf install cmake-docCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドキュメントは、
/usr/share/doc/cmake/html/index.htmlの下にあります。
第2章 Clang コンパイラー リンクのコピーリンクがクリップボードにコピーされました!
Clang は、C ベースの言語 C、C ++、Objective C/C++、OpenCL、および Cuda 用の LLVM コンパイラーフロントエンドです。
LLVM Toolset には、Clang 15.0.7 が同梱されています。
2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
LLVM Toolset がインストールされている。
詳細は、LLVM Toolset のインストール を参照してください。
2.2. ソースファイルのコンパイル リンクのコピーリンクがクリップボードにコピーされました!
Clang コンパイラーを使用して、アセンブリー言語ソースファイルとソースファイルをコンパイルします。Clang は、コンパイルの結果として実行可能なバイナリーファイルを作成します。コードをデバッグできるようにするには、-g フラグを Clang コマンドに追加してデバッグ情報を有効にします。
C++ プログラムをコンパイルするには、clang の代わりに clang++ を使用します。
手順
プログラムをコンパイルするには、以下のコマンドを実行します。
Red Hat Enterprise Linux 7 の場合:
scl enable llvm-toolset-15.0 'clang -o -g <binary_file> <source_file>'
$ scl enable llvm-toolset-15.0 'clang -o -g <binary_file> <source_file>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<binary_file>を出力ファイルの必要な名前に、<source_file>をソースファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 8 の場合:
clang -o -g <binary_file> <source_file>
$ clang -o -g <binary_file> <source_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<binary_file>を出力ファイルの必要な名前に、<source_file>をソースファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 9 の場合:
clang -o -g <binary_file> <source_file>
$ clang -o -g <binary_file> <source_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<binary_file>を出力ファイルの必要な名前に、<source_file>をソースファイルの名前に置き換えます。
-
2.3. プログラムの実行 リンクのコピーリンクがクリップボードにコピーされました!
Clang コンパイラーは、コンパイルの結果として、実行可能なバイナリーファイルを作成します。このファイルを実行し、プログラムを実行するには、以下の手順を実行します。
前提条件
-
プログラムがコンパイルされている。
プログラムをコンパイルする方法は、ソースファイルのコンパイル を参照してください。
手順
プログラムを実行するには、実行ファイルを含むディレクトリーで実行します。
./<binary_file>
$ ./<binary_file>
-
<binary_file>は、実行可能ファイルの名前に置き換えます。
2.4. オブジェクトファイルの連結 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトファイルを連結して、プロジェクト全体ではなく、変更を含むソースファイルのみをコンパイルできます。
複数のソースファイルで設定されるプロジェクトで作業する場合は、Clang コンパイラーを使用して各ソースファイルのオブジェクトファイルをコンパイルします。次のステップとして、これらのオブジェクトファイルを連結します。Clang は、リンクされたオブジェクトファイルを含む実行ファイルを自動的に生成します。コンパイル後に、オブジェクトファイルを再度リンクします。
C++ プログラムをコンパイルするには、clang の代わりに clang++ を使用します。
手順
ソースファイルをオブジェクトファイルにコンパイルするには、以下のコマンドを実行します。
Red Hat Enterprise Linux 7 の場合:
scl enable llvm-toolset-15.0 'clang -o <object_file> -c <source_file>'
$ scl enable llvm-toolset-15.0 'clang -o <object_file> -c <source_file>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<object_file>をオブジェクトファイルの名前に置き換え、<source_file>をソースファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 8 の場合:
clang -o <object_file> -c <source_file>
$ clang -o <object_file> -c <source_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<object_file>をオブジェクトファイルの名前に置き換え、<source_file>をソースファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 9 の場合:
clang -o <object_file> -c <source_file>
$ clang -o <object_file> -c <source_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<object_file>をオブジェクトファイルの名前に置き換え、<source_file>をソースファイルの名前に置き換えます。
-
オブジェクトファイルをリンクするには、以下のコマンドを実行します。
Red Hat Enterprise Linux 7 の場合:
scl enable llvm-toolset-15.0 'clang -o <output_file> <object_file_0> <object_file_1>'
$ scl enable llvm-toolset-15.0 'clang -o <output_file> <object_file_0> <object_file_1>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<output_file>を出力ファイルの必要な名前に置き換え、<object_file>をリンクするオブジェクトファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 8 の場合:
clang -o <output_file> <object_file_0> <object_file_1>
$ clang -o <output_file> <object_file_0> <object_file_1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<output_file>を出力ファイルの必要な名前に置き換え、<object_file>をリンクするオブジェクトファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 9 の場合:
clang -o <output_file> <object_file_0> <object_file_1>
$ clang -o <output_file> <object_file_0> <object_file_1>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<output_file>を出力ファイルの必要な名前に置き換え、<object_file>をリンクするオブジェクトファイルの名前に置き換えます。
-
現時点では、Red Hat Enterprise Linux の複数のバージョンでの実行に対応するために、特定のライブラリー機能は LLVM Toolset で構築されたアプリケーションに静的にリンクされています。これにより、セキュリティーリスクが小さくなります。このリスクによりアプリケーションを再構築する必要がある場合、Red Hat はセキュリティーエラータを発行します。
Red Hat は、アプリケーション全体を静的にリンクしないことを推奨します。
第3章 LLDB デバッガー リンクのコピーリンクがクリップボードにコピーされました!
LLDB デバッガーは、C および C++ プログラムのデバッグを行うためのコマンドラインツールです。LLDB を使用してデバッグするコード内でメモリーを検査し、コードの実行状態を制御して、コードの特定セクションの実行を検出します。
LLVM Toolset には、LLDB 15.0.7 が同梱されています。
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
LLVM Toolset がインストールされている。
詳細は、LLVM Toolset のインストール を参照してください。 -
コンパイラーがデバッグ情報を作成するように設定されている。
Clang コンパイラーの設定方法は、Clang Compiler User's Manual の Controlling Debug Information を参照してください。
GCC コンパイラーの設定方法は、Red Hat Developer Toolset ユーザーガイドの デバッグプログラムの準備 を参照してください。
3.2. デバッグセッションの開始 リンクのコピーリンクがクリップボードにコピーされました!
LLDB を使用して対話式のデバッグセッションを開始します。
手順
デバッグするプログラムで LLDB を実行するには、以下のコマンドを使用します。
Red Hat Enterprise Linux 7 の場合:
scl enable llvm-toolset-15.0 'lldb <binary_file>'
$ scl enable llvm-toolset-15.0 'lldb <binary_file>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow <binary_file>をコンパイルしたプログラムの名前に置き換えます。対話モードで LLDB デバッグセッションを開始しています。コマンドラインターミナルに、デフォルトのプロンプト
(lldb)が表示されるようになりました。
Red Hat Enterprise Linux 8 の場合:
lldb <binary_file_name>
$ lldb <binary_file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <binary_file>をコンパイルしたプログラムの名前に置き換えます。対話モードで LLDB デバッグセッションを開始しています。コマンドラインターミナルに、デフォルトのプロンプト
(lldb)が表示されるようになりました。
Red Hat Enterprise Linux 9 の場合:
lldb <binary_file>
$ lldb <binary_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <binary_file>をコンパイルしたプログラムの名前に置き換えます。対話モードで LLDB デバッグセッションを開始しています。コマンドラインターミナルに、デフォルトのプロンプト
(lldb)が表示されるようになりました。
- デバッグセッションを終了してシェルプロンプトに戻るには、以下のコマンドを実行します。
(lldb) quit
(lldb) quit
3.3. デバッグセッション中のプログラムの実行 リンクのコピーリンクがクリップボードにコピーされました!
LLDB を使用して、デバッグセッション中にプログラムを実行します。最初のブレークポイントに達するか、エラーが発生した場合、またはプログラムが終了したときにプログラムの実行が停止します。
前提条件
-
インタラクティブなデバッグセッションを開始している。
詳細は、デバッグセッションの開始 を参照してください。
手順
デバッグしているプログラムを実行するには、次のコマンドを実行します。
(lldb) run
(lldb) runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の引数を使用してデバッグするプログラムを実行するには、以下を実行します。
(lldb) run <argument>
(lldb) run <argument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<argument>を使用するコマンドライン引数に置き換えます。
-
3.4. ブレークポイントの使用 リンクのコピーリンクがクリップボードにコピーされました!
ブレークポイントを使用して、ソースコードの設定ポイントでプログラムの実行を一時停止します。
前提条件
-
インタラクティブなデバッグセッションを開始している。
詳細は、デバッグセッションの開始 を参照してください。
手順
特定の行に新しいブレークポイントを設定するには、以下のコマンドを実行します。
(lldb) breakpoint set --file <source_file_name> --line <line_number>
(lldb) breakpoint set --file <source_file_name> --line <line_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<source_file_name>をソースファイルの名前に置き換え、<line_number>をブレークポイントを設定する行番号に置き換えます。
-
特定の関数にブレークポイントを設定するには、以下のコマンドを実行します。
(lldb) breakpoint set --name <function_name>
(lldb) breakpoint set --name <function_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<function_name>をブレークポイントを設定する関数の名前に置き換えます。
-
現在設定されているブレークポイントの一覧を表示するには、以下のコマンドを実行します。
(lldb) breakpoint list
(lldb) breakpoint listCopy to Clipboard Copied! Toggle word wrap Toggle overflow ブレークポイントを削除するには、次のコマンドを実行します。
(lldb) breakpoint clear -f <source_file_name> -l <line_number>
(lldb) breakpoint clear -f <source_file_name> -l <line_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<source_file_name>をソースファイルの名前に置き換え、<line_number>は削除するブレークポイントの行番号に置き換えます。
-
ブレークポイントに達した後にプログラムの実行を再開するには、以下のコマンドを実行します。
(lldb) continue
(lldb) continueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の数のブレークポイントを省略するには、以下のコマンドを実行します。
(lldb) continue -i <breakpoints_to_skip>
(lldb) continue -i <breakpoints_to_skip>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <breakpoints_to_skip>をスキップするブレークポイントの数に置き換えます。注記ループを省略するには、
<breakpoints_to_skip>をループの反復数に一致するように設定します。
3.5. コードを使用したステッピング リンクのコピーリンクがクリップボードにコピーされました!
LLDB を使用すると、プログラムのコードをステップ実行して、行ポインターの後のコードを 1 行だけ実行できます。
前提条件
-
インタラクティブなデバッグセッションを開始している。
詳細は、デバッグセッションの開始 を参照してください。
手順
コードの 1 行でステップ実行するには、以下を実行します。
- 行ポインターを実行する行に設定します。
以下のコマンドを実行します。
(lldb) step
(lldb) stepCopy to Clipboard Copied! Toggle word wrap Toggle overflow
コードの特定の数行をステップ実行するには、以下を行います。
- 行ポインターを実行する行に設定します。
以下のコマンドを実行します。
(lldb) step -c <number>
(lldb) step -c <number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<number>を実行する行数に置き換えます。
-
3.6. ソースコードの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
デバッグしているプログラムを実行する前に、LLDB デバッガーにソースコードの最初の 10 行が自動的に表示されます。プログラムの実行が停止するたびに、LLDB は停止するソースコードの行と、周りの行を表示します。LLDB を使用すると、デバッグセッションでソースコードの表示を手動でトリガーできます。
前提条件
-
インタラクティブなデバッグセッションを開始している。
詳細は、デバッグセッションの開始 を参照してください。
手順
デバッグしているプログラムのソースコードの最初の 10 行を一覧表示するには、次のコマンドを実行します。
(lldb) list
(lldb) listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の行からソースコードを表示するには、以下を実行します。
(lldb) list <source_file_name>:<line_number>
(lldb) list <source_file_name>:<line_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<source_file_name>をソースファイルの名前に置き換え、<line_number>は表示する行数に置き換えます。
-
3.7. 現在のプログラムデータの表示 リンクのコピーリンクがクリップボードにコピーされました!
LLDB デバッガーは、複雑さ、有効な式、および関数呼び出しの戻り値の変数にデータを提供します。LLDB を使用して、プログラムの状態に関連するデータを表示できます。
前提条件
-
インタラクティブなデバッグセッションを開始している。
詳細は、デバッグセッションの開始 を参照してください。
手順
特定の変数、式、または戻り値の現在の値を表示するには、以下を実行します。
(lldb) print <data_name>
(lldb) print <data_name>
-
<data_name>を表示するデータに置き換えます。
第4章 RHEL 8 で LLVM Toolset を使用したコンテナーイメージ リンクのコピーリンクがクリップボードにコピーされました!
RHEL 8 では、Containerfiles を使用して、独自の LLVM Toolset コンテナーイメージを Red Hat Universal Base Images (UBI) コンテナー上にビルドできます。
4.1. RHEL 8 での LLVM Toolset のコンテナーイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
RHEL 8 では、LLVM Toolset パッケージは、Red Hat Universal Base Images (UBI) リポジトリーの一部です。コンテナーイメージのサイズを小さくするには、LLVM Toolset 全体ではなく、個々のパッケージのみをインストールします。
前提条件
-
既存の Containerfile がある。
Containerfiles 作成の詳細は、Dockerfile reference ページを参照してください。
手順
- Red Hat Container Catalog にアクセスします。
- UBI を選択します。
- Get this image をクリックして、指示に従います。
- LLVM Toolset を含むコンテナーイメージを作成するには、以下の行を Containerfile に追加します。
FROM registry.access.redhat.com/ubi8/ubi:latest RUN yum module install -y llvm-toolset
FROM registry.access.redhat.com/ubi8/ubi:latest
RUN yum module install -y llvm-toolset
個々のパッケージのみを含むコンテナーイメージを作成するには、以下の行を Containerfile に追加します。
RUN yum install -y <package-name>
RUN yum install -y <package-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<package-name>をインストールするパッケージの名前に置き換えます。
-
第5章 LLVM Toolset の変更点 リンクのコピーリンクがクリップボードにコピーされました!
LLVM Toolset が、RHEL 7、RHEL 8、RHEL 9 のバージョン 14.0.6 から 15.0.7 に更新されました。以下は、主な変更点です。
-
-Wimplicit-function-declarationおよび-Wimplicit-int警告は、C99 以降ではデフォルトで有効になっています。これらの警告は、Clang 16 以降ではデフォルトでエラーになります。