web-dev-qa-db-ja.com

ChromeデバッガーでJavaScript関数の戻り値を検査する方法は?

Gdbから来ると、関数の終了時に関数の戻り値を出力します。デバッグ中のソースを変更せずにChromeデバッガからこの情報を取得する方法はありますか?

50
John Freeman

これに対する修正 は2013年11月5日の時点で実装されていましたが、どうやらリリースされているのは、私がこれを書いている最中Chrome Canaryです。 33.0.1719.0では、Chrome Beta version 32.0.1700.19 beta。)には表示されません。

実行しているバージョンにバージョンがある場合、returnステートメントを実行すると、デバッガーのScope Variablesローカルスコープに<return>エントリとその値が含まれます。

(私はメインのデバッグにCanaryを使用する必要がありますが、問題の中で参照されている notice が表示されるまで<return>エントリの存在に気付きませんでした!)

26
klm

Chrome Version 57.0.2987.98 beta(64-bit))を使用していますが、そこにあります。本当にありがたいです。スクリーンショットは次のとおりです。

enter image description here

9
moodboom

Chromeのバージョンは41.0.2272.118 mです。複雑なreturnステートメントを別の行に配置する理由の1つはここにあります。復帰後の任意の行にブレークポイントを追加すると、Chromeは(この例では)[ソース]パネルの[スコープ変数]ペインの[ローカル]ノードの下に「<return>:true」リーフを追加しますブレークポイントにヒットしたとき。

function bar() {
   return true;
}    
(function foo() {
   return bar();
})(); // Place breakpoint here
6
user1050483

いいえ、現在のところ方法はありません。

ただし、 オープン拡張リクエスト があります。それは割り当てられており、これを書いている時点では このV8拡張機能 を待っています。

3
T.J. Crowder

ブレークポイントを設定すると、マウスを変数の上に置くと、値が表示されます。これは、実行しようとしていることに対して機能しますか?

1
Waynn Lue

Chromeではまだ可能ではありませんが、Firefox 24以降では可能です。関数からステップアウト(Shift + F11)する必要があり、関数スコープでスローされた戻り値または例外が表示されます。

0

たぶんこれで十分でしょうか?

1.)ページのソースを表示します。

2.)関数定義を探して、クリップボードにコピーします。

3.)クリップボードの関数定義を変更して、返される値をログに記録します。 (つまり、console.log(x); return x;

4.)パッチを当てた関数定義をコンソールに貼り付けて実行します。これにより、既存の関数が上書きされます。

5.)関数をトリガーします。

0
Bez Hermoso