• 締切済み

Cygwin+GDBでターミナルの設定?

Linux系ではないのですが、こちらには詳しい方がいらっしゃると思いますので、ここで質問させてください。 Cygwin環境でgdbを走らせてデバッグしようとしているのですが、gdb上ではTABキーによるコマンド補完や、↑キーによるコマンド履歴呼び出しができずに困っています。 bashを起動した状態のときは、bash上ではコマンド補完や履歴呼び出しはできています。 そこからgdbを起動すると補完や履歴呼び出しはできなくなります。 これは、ターミナルの設定の問題ですか?それともgdbの設定の問題ですか? 「・・・できなくなる」と書いてますが、全く利いていないわけではないようです。 gdb上で、↑キーを押すとその時点ではカーソルが上に移動するだけです。さらにもう一度↑キーを押してから(もちろん更にカーソルがもう一行上に移動する)ENTERを押すと、2つ前に入力したコマンドが実行されます。 また、同じくgdb上で、「d」とタイプしてからTABキーを2回押すと、カーソルがタブスペースの分だけ右へ2回移動するだけですが、ENTERを押すと「d」から始まるコマンドの一覧が出ます。 どうやら、ENTERを押すまではキー操作がgdbに伝わっておらず、ENTERと同時にgdbに渡されているようです。 それから、CTRL+Cで実行中のプログラムが停止しません。しばらくだんまりになったあと、gdb自体が終了します。これも、どうにかして、CTRL+Cで止まるようにしたいです。 関係ないかもしれませんが、bashのバージョンは4.1.10、gdbのバージョンは7.2です。 よろしくお願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

・使っている端末(minttyとかTeratermとかemacsのshellモードとか) ・環境変数TERMの値 はどうなってますか? 少なくとも、手許のCygwinではカーソルで履歴参照できます。

haniriito
質問者

お礼

コメントありがとうございます。 >使っている端末(minttyとかTeratermとかemacsのshellモードとか) 端末はminttyでした。 >環境変数TERMの値 TERM自体はxtermになっていました。 minttyでは、ほかの端末タイプも選択できるようなので、xterm-vt220/vt100/vt220のいずれも試してみましたが、状況は変わらずです。 >少なくとも、手許のCygwinではカーソルで履歴参照できます。 そうですね、Cygwinの・・というよりは、bash上ではカーソルキーで問題なく履歴が表示されます。tabキーの補完も問題ないです。 gdbに入ると、質問のような状態になります。 ちなみに、古い環境では問題なくカーソルもtabも利いていたので、確認してみると、新しいcygwinでは端末が全然違うようです。 現在はminttyを使うようですが、以前はコマンドプロンプト自体がターミナルになっている(?)ような感じでした。TERM変数も"cygwin"となっていました。使っているgdb自体は同じバージョンのものです。 思い付きで、コマンドプロンプトから直接gdbを起動してみました。すると、ちゃんとカーソルで履歴が出て、tabキーで補完ができます。 端末がminttyに替わったことによる影響だと思うのですが、 何か設定を変えることで使えるようになるのでしょうか?それともmintty自体の不具合でしょうか・・・。

関連するQ&A