Gdbから来ると、関数の終了時に関数の戻り値を出力します。デバッグ中のソースを変更せずにChromeデバッガからこの情報を取得する方法はありますか?
これに対する修正 は2013年11月5日の時点で実装されていましたが、どうやらリリースされているのは、私がこれを書いている最中Chrome Canaryです。 33.0.1719.0では、Chrome Beta version 32.0.1700.19 beta。)には表示されません。
実行しているバージョンにバージョンがある場合、returnステートメントを実行すると、デバッガーのScope Variables
ローカルスコープに<return>
エントリとその値が含まれます。
(私はメインのデバッグにCanaryを使用する必要がありますが、問題の中で参照されている notice が表示されるまで<return>
エントリの存在に気付きませんでした!)
Chromeのバージョンは41.0.2272.118 mです。複雑なreturnステートメントを別の行に配置する理由の1つはここにあります。復帰後の任意の行にブレークポイントを追加すると、Chromeは(この例では)[ソース]パネルの[スコープ変数]ペインの[ローカル]ノードの下に「<return>:true」リーフを追加しますブレークポイントにヒットしたとき。
function bar() {
return true;
}
(function foo() {
return bar();
})(); // Place breakpoint here
いいえ、現在のところ方法はありません。
ただし、 オープン拡張リクエスト があります。それは割り当てられており、これを書いている時点では このV8拡張機能 を待っています。
ブレークポイントを設定すると、マウスを変数の上に置くと、値が表示されます。これは、実行しようとしていることに対して機能しますか?
Chromeではまだ可能ではありませんが、Firefox 24以降では可能です。関数からステップアウト(Shift + F11)する必要があり、関数スコープでスローされた戻り値または例外が表示されます。
たぶんこれで十分でしょうか?
1.)ページのソースを表示します。
2.)関数定義を探して、クリップボードにコピーします。
3.)クリップボードの関数定義を変更して、返される値をログに記録します。 (つまり、console.log(x); return x;
)
4.)パッチを当てた関数定義をコンソールに貼り付けて実行します。これにより、既存の関数が上書きされます。
5.)関数をトリガーします。