2012-04-03 16 views
0

>/usr/bin/pythonと/ usr/bin/app1の2つのアプリケーションでコアダンプが生成されています。 私はダンプが複数のアプリケーションで生成されたコアダンプをgdbで解析する

gdb /path/to/app /path/to/core 

によって分析することができます知っているが、arguementで両方のアプリケーションを含める方法はありますか?

私はgdb '/ usr/bin/python/usr/bin/app1' core.xxxを試しましたが、それは正しいようです。

提案がありますか?

答えて

1

gdbの1回の呼び出しで、あなたが望むものを達成できないと思います。しかし、異なる端末ウィンドウでgdbを2回実行することができます。私はそれを何度もやったが、それはかなりうまくいく(あなた自身の脳がわずかに過負荷になる可能性を除いて)。

gdbプロセスでは、単一のデバッグプロセスまたは(死後デバッグの場合)1つの単一のプログラムをデバッグできます。

そして、1つのプロセス(複数ではありません)の異常終了によって指定されたcoreファイルが生成されるため、私はあなたの質問を理解しません。

明らかに、あなたの欠陥のあるCコードによっておそらく増加したpythonの実行でクラッシュしました。 python3-all-dbgパッケージなどをインストールして、おそらくgdbを使用して、Pythonのデバッグ可能な亜種を用意することをお勧めします。もちろん、デバッグを有効にしてPythonにプラグインされたCコードをコンパイルしてください。おそらく、あなたはPythonガベージコレクタの不変なものに違反していたでしょう。

+0

コアファイルをgdbのpython core.xxxでデバッグしようとすると、デバッガに**コアが '/ usr/bin/python/usr/bin/app1' **で生成された行が表示されます。 これは2つのプロセスによって生成されたことを意味していましたが、私はpythonプロセスであるapp1がそのようなメッセージを生成する原因になったと考え始めています。 – avid

+0

いいえ、 'gdb'は、エラーが発生したコマンドライン全体(技術的にはPythonの' main'に渡された 'argv'配列)を表示します。 1つのプロセスだけがコアダンプを生成しました。 –

関連する問題