Oracle Solaris Studio のこのリリースのデバッグツールに関する新機能です。
Oracle Solaris Studio 12.2 dbx で追加または変更された機能は次のとおりです。
最適化済みコードのデバッグのサポートの向上
パラメータおよび局所変数を探すための情報を、x86 プラットフォームで使用できます。
インライン関数についての情報を、SPARC プラットフォームで使用できます。
OpenMP の領域、タスク、およびスレッドセットについての情報を表示するための新しいコマンド
omp_pr [parallel_region_id] [-ancestors|-tree] [-v]
現在の並列領域または parallel_region_id によって指定されている領域を出力します。並列領域 ID、タイプ (暗黙的または明示的)、状態 (アクティブまたは非アクティブ)、チームサイズ (スレッド数)、およびプログラムの位置 (プログラムカウンタアドレス) が含まれます。
omp_tr [task_region_id] [-ancestors|-tree]
現在のタスク領域または task_region_id で指定されている領域の説明を出力します。タスク領域 ID、タイプ (暗黙的または明示的、結合または結合解除)、状態 (生成済み、実行中、または待機中)、発生スレッド、実行スレッド、プログラムの位置、未終了の子、および親が含まれます。
omp_team [parallel_region_id]
現在のチームのすべてのスレッドを出力します。parallel_region_id を指定すると、その領域のチーム内のスレッドが出力されます。
omp_loop
現在のループの説明を出力します。スケジューリングのタイプ (静的または動的)、待機または非待機、順序付き、上下限、および反復の数が含まれます。このコマンドは、現在ループを実行中のスレッドからのみ発行できます。
omp_serialize
現在のスレッドで検出される次の並列領域を直列化します。
OpenMP プログラムの既存コマンドの拡張
print -s expression
thread -info
what is name
where
新しい OpenMP イベント
omp_barrier [type] [state]
バリアーに入っているスレッドのイベントを追跡します。
omp_taskwait [state]
taskwait に入っているスレッドのイベントを追跡します。
omp_ordered [state]
順序付き領域に入っているスレッドのイベントを追跡します。
omp_critical
クリティカル領域に入っているスレッドのイベントを追跡します。
omp_atomic [state]
不可分領域に入っているスレッドのイベントを追跡します。
omp_flush [type]
フラッシュを実行しているスレッドのイベントを追跡します。
omp_task [state]
タスクの作成と終了を追跡します。
omp_master
マスター領域に入っているマスタースレッドのイベントを追跡します。
omp_single
単一領域に入っているスレッドのイベントを追跡します。
ここでは、Oracle Solaris Studio 12.2 dbx のこのリリースで解決された問題について説明します。
tracei ステップを行っているときに dbx の実行を停止できない
Solaris プラットフォームで tracei ステップを実行しているときに、Ctrl-C (^C) キーを押して dbx を停止できませんでした。これは実際には Solaris OS のバグですが、問題を回避するように dbx が変更されました。
計装されている debuglog uttsc バイナリにステップインできない
dbx は、字句ブロック内の C++ 名前空間の別名を正しく処理していませんでした。これにより、明示的に計装されたバイナリに dbx がステップインできない問題が発生していました。
Purify を指定して計装されているマルチスレッドプログラムの dbx でスレッド関連のコマンドを使用できない
Purify を指定すると、計装されるすべての共有ライブラリの名前に接尾辞が追加されます。たとえば、libc.so.1 は libc.so.1_pure_p3_c0_1005282029_510_32 になります。dbx は libc.so.1 の存在を基にして決定を行っており、読み込まれていませんでした。dbx は _pure* 接尾辞を認識するようになりました。
特定の GCC 4.x. sybx を復号化できない dbx が SLES 10.2 のコアファイルからプログラム名を抽出できない
SuSE Linux Enterprise Server 10.2 システムでは、新しい Linux システムのコアファイルに 2 つの note セクションが含まれていて、2 番目のセクションは空であるため、dbx はコアファイルからプログラムを抽出できませんでした。dbx は 1 番目のセクションから名前を取得するようになります。
dbx が gcc コードでコンストラクタのコピーを検索する
gcc は 1 つのメンバーに対して複数のエントリを生成する場合があり、それが DWARF デバッグの pubnames セクション、プロトタイプ、および抽象インスタンスに含まれていました。dbx は、プロトタイプエントリのインスタンスを検出して処理すると、エントリを削除する必要がありました。
dbx が SLES 10.2 のコアファイルからプログラム名を抽出できない
SuSE Linux Enterprise Server 10.2 システムでは、新しい Linux システムのコアファイルに 2 つの note セクションが含まれていて、2 番目のセクションは空であるため、dbx はコアファイルからプログラムを抽出できませんでした。dbx は 1 番目のセクションから名前を取得するようになります。
dbx が変数の出力で SIGSEGV を取得する
実行可能ファイルが -g オプションを指定してコンパイルされていないオブジェクトファイル (.o) から構築されていて、dbx が変数を評価するためにそのようなオブジェクトファイルの 1 つをインポートする必要がある場合、dbx がこの条件を検査していないためにインポートが失敗する場合がありました。
dbx — core segv if が有効ではない
dbx は長さがゼロのコアファイルの可能性を検査していず、それを正しく処理していませんでした。
「メモリー」ウィンドウおよび「逆アセンブル」ウィンドウによって IDE で dbx がクラッシュする場合がある
「メモリー」ウィンドウまたは「逆アセンブル」ウィンドウの表示中に IDE のデバッグセッションを終了し、そのあとでセッションを再開した場合、どちらかのウィンドウを前面にすると基になっている dbx がクラッシュしていました。
dbxtool の新機能または変更された機能は次のとおりです。詳細は、dbxtool(1) のマニュアルページおよび『Oracle Solaris Studio 12.2 dbxtool チュートリアル』を参照してください。
「オプション」ウィンドウの大域デバッグオプションが、「セッション起動」プロパティと「ウィンドウ」プロパティに再編されました。「プログラムが停止したら Dbx コマンドタブを前面に表示する」、「ブレークポイントを保存して復元する」、「開始プロセスへのステップを許可する」、「式の評価を吹き出し表示する」の 4 つのプロパティ設定が削除されました。
「局所変数」ウィンドウは「変数」ウィンドウになりました。
「新規ウォッチポイント」ボタンおよび「式評価」ボタンがツールバーから削除されました。
「再起動」ボタンがツールバーに追加されました。
「新規ブレークポイント」ダイアログボックスで、LWP、言語モード、および一時チェックボックスが削除されました。「条件」、「数」、「WhileIn」、および「スレッド」フィールドの配置が変更されました。「詳細/簡易表示」ボタンが削除されました。
複数のデバッグセッションがある場合、「セッション」ウィンドウが自動的に開きます。
「スタックの呼び出し」ウィンドウには最大で 40 フレームが表示されます。「増やす」をクリックすると、40 より多くのフレームを表示できます。
「変数」ウィンドウおよび「ウォッチポイント」ウィンドウは静的なメンバーを表示できます。
「変数」ウィンドウには自動のみを表示するためのボタンがあります。
「変数」ウィンドウには「新規ウォッチポイント」ボタンがあります。
「ディスアセンブラ」ウィンドウは「逆アセンブリ」に名前が変更されました。
メモリーアクセスエラーを検出するための高度な開発ツールである Sun メモリエラー探索ツール (Discover) は、このリリースの新機能です。
アプリケーションのコードカバレージを測定するための簡単で使いやすいコマンド行ツールである Uncover は、このリリースの新機能です。
詳細は、discover および uncover(1) のマニュアルページおよび『Oracle Solaris Studio 12.2 Discover および Uncover ユーザーズガイド』を参照してください。
Oracle Solaris Dynamic Tracing (DTrace) テクノロジを利用する C/C++ 開発者用のスタンドアロン対話型グラフィカル可観測性ツールである DLight は、このリリースの新機能です。このツールは、Sun Studio 12 Update 1 に含まれていた DLight ツールと同じものではありません。『Oracle Solaris Studio 12.2 DLight チュートリアル』を参照してください。