JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ
search filter icon
search icon

ドキュメントの情報

はじめに

1.  dbx の概要

2.  dbx の起動

3.  dbx のカスタマイズ

4.  コードの表示とコードへの移動

5.  プログラムの実行制御

6.  ブレークポイントとトレースの設定

7.  呼び出しスタックの使用

8.  データの評価と表示

9.  実行時検査

10.  修正継続機能 (fix と cont)

修正継続機能の使用

fix と cont の働き

fix と cont によるソースの変更

プログラムの修正

ファイルを修正する

修正後の続行

実行された関数への変更

呼び出されていない関数への変更

現在実行中の関数への変更

現在スタック上にある関数への変更

修正後の変数の変更

ヘッダファイルの変更

C++ テンプレート定義の修正

11.  マルチスレッドアプリケーションのデバッグ

12.  子プロセスのデバッグ

13.  OpenMP プログラムのデバッグ

14.  シグナルの処理

15.  dbx を使用してプログラムをデバッグする

16.  dbx を使用した Fortran のデバッグ

17.  dbx による Java アプリケーションのデバッグ

18.  機械命令レベルでのデバッグ

19.  dbx の Korn シェル機能

20.  共有ライブラリのデバッグ

A.  プログラム状態の変更

B.  イベント管理

C.  コマンドリファレンス

索引

修正継続機能の使用

fix と cont の各機能を使用すると、ソースファイルを修正して再コンパイルし、プログラム全体を作成し直すことなく実行を続けることができます。.o ファイルを更新して、それらをデバッグ中のプログラムに組み込むことにより、再リンクの必要がなくなります。

この機能を使用する利点は次のとおりです。

fix と cont の働き

fix コマンドを使用するには、エディタウィンドウでソースを編集する必要があります。(コードの変更方法については、「fix と cont によるソースの変更」を参照)。変更結果を保存して fix と入力します。fix コマンドについては、fix コマンド」を参照してください。

fix が実行されると、dbx は適切なコンパイラオプションでコンパイラを呼び出します。変更後のファイルがコンパイルされ、一時共有オブジェクト (.so) ファイルが作成されます。古いファイルと新しいファイルとを比較することによって、修正の安全性を検査する意味上のテストが行われます。

実行時リンカーを使用して新しいオブジェクトファイルが動作中のプロセスにリンクされ、プログラムカウンタが古い関数から新しい関数の同じ行に移動します (その関数が修正中のスタックの一番上にある場合)。さらに、古いファイルのブレークポイントがすべて新しいファイルに移動します。

対象となるファイルがデバッグ情報付きでコンパイルされているかどうかにかかわらず、fix コマンドと cont コマンドを実行できます。ただし、デバッグ情報なしでコンパイルされているファイルの場合には多少の機能制限があります。fix コマンド」-g オプションの解説を参照してください。

共有オブジェクト (.so) ファイルの修正は可能ですが、その場合、そのファイルを特別なモードでオープンする必要があります。dlopen 関数の呼び出しで、RTLD_NOW|RTLD_GLOBALまたは RTLD_LAZY|RTLD_GLOBAL のどちらかを使用します。

Oracle Solaris Studio C および C++ コンパイラのプリコンパイル済みヘッダー機能では、再コンパイル時にコンパイラオプションが同じである必要があります。fix コマンドによって、コンパイラオプションがわずかに変更されるため、プリコンパイル済みヘッダーを使用して作成されたオブジェクトファイルでは fix コマンドを使用しないでください。

fix と cont によるソースの変更

fix と cont を使用すると、ソースを次の方法で変更できます。

古いファイルから新しいファイルに関数をマップすると問題が起きることがあります。ソースファイルの編集時にこのような問題の発生を防ぐには、次のことを守ってください。

前述の変更を行う場合は、fix と cont で処理するよりプログラム全体を作り直す方が簡単です。