2016-12-07 5 views
2

私のfedoraボックスに、私は多くの別個のデバッグ情報をインストールしました。gdbセッションでデバッグ情報ファイルのサブセットを選択

私はいくつかのシンボルが表示されたり、一部の値が印刷されるまで、それは非常に長い必要がありますいくつかの簡単なコードをデバッグする場合はsudo DNFの、<list of packets>

をのdebuginfoインストールしてください。インストールされているすべてのシンボルファイルを評価してすべての情報を取得することは絶対に必要です。

しかし、私は問題を抱えている場合は、私が唯一の-gオプションととGooCanvas LIBSのためののみデバッグに関する情報と自分のコンパイルされたコードで生成された私の地元のデバッグsmbolsを持ちたいとGooCanvasなどのLIBに言います。

どのようにその種の選択を達成できますか?デバッグ情報ファイルのフォルダの名前を変更し、必要なもののコピーを生成するだけですか?おそらくシンボリックリンクですか?または、どこにでも共通の選択肢がありますか?

答えて

2

共有ライブラリからすべてのデバッグ情報をスキップし、goocanvasのlibシンボルのみを読み込むことができます。ここでは、GDBセッションでそれを行う方法のサンプルです:gdb docから

[ ~]$ gdb -q /your/binary 
(gdb) set auto-solib-add off 
(gdb) start 

Temporary breakpoint 1, 0x000055555564edd0 in main() 
(gdb) sharedlibrary goocanvas 

あなたのプログラムが をすることができます、大量のメモリを取ることをデバッグ情報を持つ共有ライブラリの多くを使用している場合 共有ライブラリのシンボルを自動的に読み込まないようにして、gdbメモリ フットプリントを減らしてください。そのためには、 が実行される前にset auto-solib-add offと入力し、デバッグシンボル が必要とする各ライブラリをsharedlibrary regexpでロードします。ここで、regexpは、シンボルが存在するライブラリに一致する正規表現 です。 がロードされました。

も、この関連の質問を参照してください:How to prevent GDB from loading debugging symbol for a (large) library?

関連する問題