0

リモート マシンで DDD を gdb に接続しようとしています。マシンとユーザー名のパスを必要としないように rsh を構成しました。

ddd が「rtx5:1234: not found」で開き、「GDB could not be started」というポップアップが表示されます。ddd の呼び出しから --host rtx5:2159 --trace --no-exec-window /home/murray/beer-process

#  Running GDB (pid 2826, tty /dev/pts/1)...
#  Current language: C/C++
#  Searching "vsllib/ddd.vsl"...
#  Trying "/home/murray/.ddd/vsllib/ddd.vsl"
#  Trying "/usr/share/ddd-3.3.12/vsllib/ddd.vsl"
#  Searching "vsllib/ddd.vsl"..."/usr/share/ddd-3.3.12/vsllib/ddd.vsl".
<- "sh: line 0: exec: rtx5:2159: not found\n"
#  Running GDB (pid 2826, tty /dev/pts/1)...Exit 127.

ddd がトレースログから起動した GDB の PID は 4 桁です。ただし、rtx(target) から確認できる PID はすべて 8 桁です。gdb をプロセスとして見ることはできませんが、トレース ログにはそれ以外のことが示されています。ドキュメンテーションは古くなっていますか? 間違って呼び出していますか? ddd が正しく rsh-ing されているかどうかをテストするにはどうすればよいですか?

ドキュメント 2.4.1の警告に対処しました。

  • Beer-process バイナリは、ターゲット上のユーザー名のホーム ディレクトリにあります。
  • /usr/bin/gdb で gdb のパスを確認しました
  • rtx5 には xterm がないため、 --no-exec-window フラグを含めます

前もって感謝します

4

1 に答える 1

0

TLDR: ホストにファイアウォールがあり、ddd の rsh 接続のみに干渉していました。また、「'rsh rtx5'」を「rtx5」に置き換える必要がありました。リモートターゲットのホームディレクトリにあるにもかかわらず、渡したプログラムが見つかりません。ただし、ddd-gui を使用して検索、読み込み、およびデバッグすることはできます。

パスワードなしで rtx5 に rsh してから、gdb を呼び出すことができました。「rsh rtx5 gdb」を実行できず、gdb を開始できませんでした。これはrshによるものです。コマンドなしで rsh が呼び出されると、514 から動作します。rsh がコマンドで呼び出されると、通信して別のポート番号に移動しようとします。これは、ファイアウォールがブロックしていた場所です。
Wireshark は、rsh 接続後にローカルからターゲットへの移動を示しました。

destination unreachable (host administratively protected) 

ddd には、リモート ホーム ディレクトリにあるバイナリを読み込めないという主な問題がまだ残っています。これにより、問題はリモート ホストで実行中のプロセスに接続することにまで及びます。どちらの場合も、接続が確立されると、GUI を介してロード/接続できます。
さらに、リモートホスト名の前に「rsh」を付けて ddd を呼び出す必要があります。これは間違っているようです。もっとあったら更新します。

于 2016-12-14T22:11:12.800 に答える