0

KDevelopで作成したプログラムを分析したいと思います。プログラムをコンパイルして、

CMakeプロジェクトを右クリック->名前を付けてデバッグ...->ネイティブアプリケーション

これで、プログラムはKDevelopで実行され、KDevelopに埋め込まれたコンソールで出力を確認できます。Ctrl+ "(SIGTERM)を押すと、プログラムの実行が停止しますC。KDevelopの外部のコンソールでプログラムを実行しているときに、プログラムを押すことができます。

シグナル「SIGTERM」をKDevelop内の組み込みコンソールに送信するにはどうすればよいですか。

回避策として、 htopを起動し、プログラムを選択して、そこからSIGTERMを送信できます。これは正常に機能しますが、KDevelop自体にすべての機能がある方がよいでしょう。

4

3 に答える 3

1

考えられる解決策の1つは次のとおりです。

  • CMakeプロジェクトを右クリック->名前を付けてデバッグ...->ネイティブアプリケーション。
  • KDevelop内の「gdb」-タブに変更します。
  • 「一時停止」-右隅のアイコンを押して、「gdb」-タブの入力フィールドを有効にします
  • タイプsignal <Signal>、例えばsignal SIGTERM
  • プログラムは続行され、送信された信号をキャッチします。
于 2012-11-28T11:21:46.377 に答える
0

KDevelop内からSIGINTを送信できます。

実行->割り込み

ただし、他の信号を送信することはできません。

それが便利な機能だと思う場合は、bugs.kde.orgでウィッシュリクエストを作成してください-最終的には添付のパッチを含めます:D

于 2012-11-27T06:56:52.707 に答える
0

killコマンドを使用して、プロセスにシグナルを送信します。kill -lシグナルとそのIDのリストを提供する必要があります。

たとえば、FreeBSDでは、次の出力に示すように、SIGTERMシグナルは#15です。

$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGEMT       8) SIGFPE       9) SIGKILL     10) SIGBUS
11) SIGSEGV     12) SIGSYS      13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGURG      17) SIGSTOP     18) SIGTSTP     19) SIGCONT     20) SIGCHLD
21) SIGTTIN     22) SIGTTOU     23) SIGIO       24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGINFO     30) SIGUSR1
31) SIGUSR2

したがって、SIGTERMをプロセスに送信するには、プロセスIDを検索してから、次のようにkillコマンドを送信します。

kill -15 <process ID>
于 2012-11-26T15:39:48.073 に答える