2016-11-11 9 views
1

私はaaというCプログラムとbbという別のCプログラムを持っているとします。 bbはaa(引数として渡される)の上でのみ実行でき、単独では実行できません。だから多分aaをOSと考え、bbが役立つならばアプリだ。今度はbbをデバッグしたいのですが、GDBではgdb ./aaを実行し、コマンドr - ./bbを発行する必要があります。したがって、この場合、ブレークポイントを実行せずに直接bbに設定することは可能ですか?ありがとう!このような状況でGDBにブレークポイントを設定することはできますか?どうやって?

+0

'r - 。/ bb'コマンドは' aa'プログラムへの入力ですか、それともgdb 'r'コマンドですか? – eddiem

+0

@eddiem与えられた引数で実行するGDBコマンドです。 'gdb -args ./aa aaargs ./bb bbargs'でも同じことができます。 –

答えて

2

あなたはデバッグシンボルを持っていると仮定すると、あなたはaaバイナリに存在しない上壊したく関数の名前は、あなたが行うことができます:

set follow-fork-mode child 
b <function> 

をしてから答えるはいに促さ将来の共有ライブラリの読み込みを中断するかどうか。最初のプログラムフォークが実行されると、gdbはその子をフォローし、目的の関数にブレークポイントを設定します。

関連する問題