2013-10-16 15 views
5

LinuxのみのC++アプリケーション(QT link)でHUPシグナルハンドラを作成し、QT Creator 5.1で作業しています。コードがコンパイルされ、QTクリエーターで細かい動作しますが、私はコマンドラインからHUP信号を送信するときに、QT Creatorはポップアップを停止します。qt作成者がLinuxシグナルで停止する

に沿っ「それは、オペレーティング・システムからの信号を受信したため劣るが停止しました」 HUP信号情報を含む。

デバッグパネルのCONTINUEボタンをクリックすると、私のqDebugステートメントが私のコードのHUPシグナルハンドラから出力されます。私の質問は、この正常な動作ですか?私のコードがHUPシグナルを適切に処理しているときにQT CreatorがHUPをトラップしてコードを停止するのはなぜですか?

+0

たぶんQtのCreatorは箱の外から来るもののようではない、コンソールからではなくQtの –

+0

うんから直接アプリケーションを試す - [OK]を動作します。私はQT Creatorのどこかに信号が無視されるように設定されていることを期待していました... – TSG

+0

IIRCはQt Creatorではありませんが、デバッガでやっています。 –

答えて

8

[ツール] - > [オプション] - > [デバッガ] - > [GDB]のチェックボックスをオフにするだけです。

P.S.もちろんQt Creatorのポップアップウィンドウにしか関係しませんが、主要な部分はデバッガです。 gdbにシグナルを伝えずにプログラムに渡したい場合は、次のようなコマンドをgdbに与える必要があります:handle SIGHUP pass nostop noprint(ウィンドウ - >ビュー - >デバッガログまたはツール - >オプション - >デバッガ - > GDB - > GDBの起動スクリプト ヘルパーのカスタマイズをデバッグする(SIGINTシグナルの下の画像のように))。

enter image description here

+0

私は前にそれを逃したが、それは右に見える – TSG

関連する問題