7

Solaris 10 x86 でクローズド ソース プログラムをデバッグするために GDB を使用しています。

私は gdb をプログラムにアタッチして実行を続けますが、後で実行を一時停止して一部のメモリを調べたい場合はできません。CTRL-C を押すと、プログラムを一時停止して (gdb) プロンプトにドロップする代わりに、^C のみが出力されます。

bash-3.00# gdb --pid=1521
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10".
Attaching to process 1521
Retry #1:
Retry #2:
Retry #3:
Retry #4:
[New LWP 1]
0xfe3b5a23 in ?? ()
(gdb) c
Continuing.
^C^C^C^C^C^C^C^C

(gdb) プロンプトに戻るにはどうすればよいですか? 私は何か間違ったことをしていますか、どうすればこれを機能させることができますか?

4

3 に答える 3

0

Solaris を使用していて、bash を使用しているように見えますが、おそらく端末を適切に設定していません。多くの場合、bash はこれを処理できますが、ksh などを使用している場合は、バックスペースが印刷されている可能性があります。バックスペースの代わりに ^H (その場合、stty 消去 '^H' が必要です... いつでも stty sane でコンソールを設定できます。

ここで考えられる問題は、バグではありませんが、デバッグしているアプリが端末をリセットしていることです。私は今、Solaris ボックスを使用していませんが、GNU stty では、stty tostop のようなことを行うことができます。

  • [-]tostop ターミナルへの書き込みを試みるバックグラウンド ジョブを停止します

別の端末から reset または tset を実行して、^C を再構成することもできます。

gdb 内から、「tty」エイリアスを使用するか、inferior-tty /path/to/term を設定できます

Set terminal for future runs of program being debugged.
Usage: set inferior-tty /dev/pts/1
于 2009-07-14T01:54:20.090 に答える
0

これは GDB のバグです。

CVS Headの GDB の現在のバージョンでこれを再現できる場合は、バグを報告してください。

于 2009-03-06T02:24:18.720 に答える