重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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です。

よろしくお願いします。

A 回答 (1件)

・使っている端末(minttyとかTeratermとかemacsのshellモードとか)


・環境変数TERMの値
はどうなってますか?

少なくとも、手許のCygwinではカーソルで履歴参照できます。
    • good
    • 0
この回答へのお礼

コメントありがとうございます。

>使っている端末(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自体の不具合でしょうか・・・。

お礼日時:2013/07/29 12:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!