2017-02-09 3 views
-1

私はデーモン(例えばtempd)を実行しており、gdbがそれに接続されています。GNUデバッガgdbを起動/再起動時にデーモンに接続させるにはどうすればよいですか?

% ps x | grep tempd 
5467 ?? S  0:00.36 /usr/sbin/tmpd -N 

> gdb 
gdb> symbol-file /var/tmp/tmpd 
gdb> attach 5467 
gdb> breakpoint a_funcion_name 
breakpoint was set 
gdb> c 
continuing 
. 

デーモンの再起動時に自動的に新しいPIDに接続するようにgdbを設定できますか?私はデーモンの新しいPIDを見つける前に実行される関数でブレークポイントを設定し、手動でgdbをアタッチしたいと思います。私はgdbの中からデーモンを起動するオプションを持っていません。それはイベントによって起動されるからです。

+0

これは[askubuntu](http://askubuntu.com/)との関連性が高いようです。そこに尋ねる – andrgolubev

答えて

0

あなた自身のデーモンですか?もしそうなら、デーモン内からgdbを起動できますか?

system("xterm -c gdb <prog-path> <pid> &"); 

は、トリックを行う必要があります。多分、xterm/gdbに時間を与えるために後で睡眠を追加してください。

0

xは
を作成しているという名前のプロセスが続いてGDBを実行し、それに接続する場合は、そのチェックの常時あるいはinerval
に、別のスクリプトを作成することができます。

関連する問題