1

C または C++ コア ダンプのデバッグ中、つまり、コア ダンプ ファイルが残っていて、そのコア ファイルを使用してデバッグしようとすると、ダンプが発生する前のコードの最後の数行を確認する方法があります。スタック トレースのみ関数呼び出しを示します。

例: dbx または gdb list コマンドで実行中のプロセスをデバッグ中

list Display lines of a source file

現在実行中のコードの一部が表示されます。同じように、コア ダンプを調べているときにオプションがありますか? 私はsolaris mdbに取り組んでいます

4

3 に答える 3

2

次の場合、gdbのlistコマンドは、ソース コードの行番号の詳細と、コア ファイルからの対応するソース リストを提供する必要があります。

  • 実行可能ファイルは、デバッグ シンボルを有効にしてコンパイルされました ( -ggcc および g++ など) 。
  • 実行可能ファイルのストリップされていないバージョンが利用可能です (つまり、実行によってデバッグ情報が削除されていませんstrip) 。
  • デバッガーは、関連するソース ファイルを見つけることができます。

行番号情報はデバッグ シンボルの一部を形成するため、ソース ファイルが見つからない場合でも、デバッガーはファイル番号と行番号を提供できるはずです。この情報は、bt(backtrace) コマンドおよび コマンドから入手できますinfo symbol

コア ファイルがストリップされた実行可能ファイルから生成された場合でも、ストリップされていないバージョンにアクセスできる限り、コア ファイルを指定するだけでなく、それを gdb にロードできることに注意してください。

gdb マニュアルの第 13 章と第 15 章を参照して、 gdbがソース ファイルにアクセスできるようにしてください。

于 2012-04-02T07:37:40.993 に答える
0

-g オプションでコンパイルすると、ソース行を表示できます。dbx では、コマンドを使用useして dbx ソース ディレクトリを設定できます。

list(l) コマンドを使用して、ソース行を表示できます。

helpdbx および gdb コマンドの使用方法については、コマンドを参照してください。

于 2012-04-02T07:19:38.950 に答える
0

usedbx のコマンドを使用してソース パスを適切に設定した場合、または-Iオプションで起動した場合、ソース行の読み取りに関しては、コア ダンプのデバッグと通常のプロセスとの間にほとんど違いはありません。

于 2012-04-02T07:21:39.903 に答える