このセクションでは、Oracle Developer Studio と GCC の間の互換性に影響を与えるオブジェクトファイルの機能について説明します。
一部の Oracle Developer Studio ツールは、コンパイラによって出力される生成されたコードに関する追加の構造情報に依存します。この情報は「注釈」と呼ばれ、「.annotations」という名前の ELF セクションに出力されます。コードアナライザの一部の機能は注釈に依存します。このデータの生成は、–xannotate オプションを使用して制御できます。この情報を使用するコマンドは、binopt、code-analyzer、discover、collect、および uncover です。
C++ コンパイラは、型情報が内部にエンコードされる ELF シンボルを生成します。これらは「符号化名」と呼ばれます。符号化名の形式は、実装の詳細であるため、compat=5 (Sun ABI) モードでコンパイルされた Oracle Developer Studio コードは、g++ でコンパイルされたコードと正しく混在できません。gnu モードで Oracle Developer Studio C++ コンパイラを使用すると、互換性のあるオブジェクトファイルになります。詳細については、Oracle Developer Studio 12.5: C++ ユーザーズガイドを参照してください。
オブジェクトコードを計測する必要のあるコンパイラ機能は、追加のライブラリまたはオブジェクトファイルをリンク時に含める必要があります。これらの機能を使用する場合、Oracle Developer Studio コンパイラを使用して、実行可能ファイルまたはライブラリをリンクする必要があります。gcc でビルドされたコードをプログラムまたはライブラリに混在させた場合は計測されないため、結果が不完全になります。
このカテゴリの機能は次のとおりです。
プロファイルフィードバック – オプション –xprofile および –xlinkopt を含みます。
従来のプロファイリング – コンパイルおよびリンク時にオプション –xpg を含みます。
従来のカバレージ – オプション –xprofile=tcov および tcov ユーティリティを含みます。
dbx およびその他の Oracle Developer Studio ツールは、コンパイラによって生成されるデバッグ情報を使用します。情報の大部分が DWARF 形式で記録されますが、いくつかの追加のインデックス情報は STABS と呼ばれる古い形式で記録されます。dwarf の ELF セクションは「.debug」で始まり、stabs の ELF セクションは「.stab」で始まります。