私はプログラムをデバッグするためにGDBを使用しており、その出力をGDBを実行している端末以外の端末に送信したいと思います。これが私がやってきたことです:
- 2番目の端末を開き、を使用してデバイス名を確認し、同様のものを入手し
tty
てください/dev/pts/14
。 - 私のGDBセッションでは、コマンドを使用して
tty /dev/pts/14
出力を端末に設定しました。 - 次に、
run
GDBでコマンドを実行してプログラムを起動します。
この設定は、出力をターミナル2として正しく指定しますが、問題はターミナル2の最初の行に常に次のものが表示されることです。
warning: GDB: Failed to set controlling terminal: Operation not permitted
GDBをrootとして実行しようとしましたが、sudo
同じ警告が表示されました。私のプロセスを単純化して表現すると、次のようになります。
# Terminal 2:
$ tty
/dev/pts/14
# Terminal 1:
$ gdb ./some-program
(gdb) tty /dev/pts/14
(gdb) run
この警告の原因とそれを解決または抑制する方法を説明できる人はいますか?制御端末を設定するとき、GDBは何をしようとし、なぜ失敗するのですか?
メモ:クラシックttyでも同じことが起こります。/dev/tty3