2011-01-17 17 views
2

JDeveloperからWeblogicサーバーへのリモート・デバッグを使用してきたので、非常に便利です。しかし、遠隔デバッグが技術的にどのように実装されているかを理解することに興味があります。一般的なリモート・デバッグの実装方法

Javaコードを変更し、リモート・マシン上のjdeveloperでクラスを再構築してサーバーのデバッグを行っているときに、コード変更が自動的にサーバーに送られます。これはどうやって起こるのですか?ツールは、ネットワーク上のコンパイル済みJavaクラスをサーバーに送信しますか?

リモートデバッグの技術について説明しているドキュメントやリンクは、誰でも共有してください。

おかげ&よろしく、 ハリッシュ

答えて

0

あなたは一般でリモートデバッグについて尋ねている、または、特定のツールのためにあなたが記述している場合はわかりません。

Iは、Java/Oracle JDeveloperのについてあまり知らないが、次のように一般的なリモートデバッグ中作品:デバッグしたい実行ファイルへの

  • ターゲットマシン上で、特別なサーバ・プロセス・フック、デバッガと同じようにローカルで実行します。このサーバーは、シンボルとソースコードについて知る必要はなく、実行可能ファイルを実行するだけです。システムコマンドを使用すると、メモリスペースを停止して調べることができます。
  • ホストマシンでは、デバッガ自体が実行され、実行可能ファイルとそのソースコードのコピーもあります。デバッガは、ある種のプロトコル(TCP/IPまたは組み込みデバイス用のシリアル)を使用して、ターゲットマシン上のサーバと通信し、ステップ実行するように頼み、実行可能ファイルのデバッグ情報から特定のメモリ位置を調べ、ユーザにデバッグされているソースコードなどが含まれます。

たとえば、おそらく最も一般的なリモートデバッグサーバであるgdbserverを読んでください。

希望します。

+0

ありがとうございます。私は特定のツールを探しているわけではありません。むしろ、私はそれがどのように機能するのか一般的に理解したい。 – Harish

+0

変更後にソースコードをコンパイルすると、コンパイルされたクラスファイルがネットワーク経由でサーバーに送信されますか?これは、リモートサーバーがJavaコードの変更を取得する方法ですか? – Harish

+0

@ハリッシュ:これは実装できる方法の1つです。しかし、これらは*面白い*実装の詳細IMHOではありません。 2つの通信するエンティティへのデバッガの分離の概念はより興味深い –

関連する問題