2

firebug と Webkit ブラウザーの組み込みコンソールの両方で、実行中の Javascript コードにブレークポイントを設定できるため、他の言語と同じようにデバッグできます。

私が疑問に思っているのは、実行時にファイル Y の行 X にブレークポイントを設定し、私が持っている特定のスコープで変数を調べることができるように、firebug または webkit に指示できる方法があるかどうかです。一時停止しました。

Chrome (またはその他の Webkit ブラウザー) と Firefox の両方で動作するものが必要です。後者の場合、Firebug は許容可能な依存関係です。IE のサポートは必須ではありません。

私はブラウザー内 IDE を構築しており (興味のある方のための簡単なビデオ: http://www.youtube.com/watch?v=c5lGwqi8L_g )、もう少し肉付けしたいと考えています。

私が試したことの 1 つはdebugger;、ユーザーが設定する行を追加することでしたが、これは実際には理想的な解決策ではありません。

4

3 に答える 3

5

リモート デバッグ プロトコルを使用して、Webkit ブラウザーに対してこれを確実に実行できると思います。これは、websocket 接続と、行き来する json メッセージ プロトコルに基づいています。

アナウンスメントとプロトコル スキーマ全体を読むことができます。

Chrome では、リモートの開発者ツールのドキュメント内でこれに関する詳細情報も提供しています。

たとえば、デバッガ ドメインの場合、 Debugger.setBreakpointDebugger.setBreakpointByUrl、およびDebugger.setBreakpointsActiveを使用してブレークポイントを操作する方法を確認できます。

一方、 https://developer.mozilla.org/en-US/docs/Tools/Debugger-APIおよびhttps://wiki.mozilla.org/でわかるように、Mozilla もこれに取り組んでいるようです。 Remote_Debugging_Protocolの完了状況はわかりませんが。

この場合、Debugger.Script API setBreakPoint、getBreakPoint、getBreakpoints、clearBreakpoints、および clearAllBreakpointsを使用してブレークポイントを操作できます。

これがあなたの前進に役立つことを願っています。

于 2012-08-26T08:14:57.553 に答える
1

少なくとも、JavaScript の公開されたスクリプト可能な側面を使用しない限り、そのようなことはありません。あなたのためにそれを行うことができる特権ブラウザ拡張機能があれば、それは可能です. たとえば、Firebug には、コマンド ラインから呼び出すことができるデバッグ メソッドがありますが、ページ内のスクリプトから呼び出すことはできません。

したがって、2 つの解決策があります。

  1. 必要に応じて制御できる独自の JavaScript インタープリターを実装します。ちょっと野心的すぎるかもしれませんが…
  2. コード内の任意の場所にブレークポイントを設定し、一部の API をパブリック コードに公開し、JavaScript から操作できるブラウザー拡張機能を利用してください。ただし、これは、ユーザーが「Web IDE」を使用する前に、追加のソフトウェアをインストールする必要があることを意味します。
于 2012-08-26T06:13:51.110 に答える
0

変数を監視するために使用し、割り当てが発生したときの_defineSetter__呼び出しと組み合わせます。debugger

__defineSetter__("name", function() { debugger; });

またはdefineProperty:

function setter () { debugger; }

Object.defineProperty(Math, 'name', { set: setter });

参考文献

于 2012-08-21T22:29:32.847 に答える