it-swarm.com.de

Wie überprüfe ich den Rückgabewert der JavaScript-Funktion im Chrome-Debugger?

Wenn es von gdb kommt, würde es den Rückgabewert einer Funktion ausgeben, wenn es fertig ist. Gibt es eine Möglichkeit, diese Informationen aus dem Chrome-Debugger abzurufen, ohne die zu debuggende Quelle zu ändern?

43
John Freeman

Ein Fix für dieses Problem wurde am 5. November 2013 implementiert, wird aber anscheinend nur veröffentlicht, während ich dies in Chrome Canary schreibe. (Ich sehe es in 33.0.1719.0, aber nicht in der Chrome Beta-Version 32.0.1700.19.)

Wenn die Version, die Sie ausführen, über eine Return-Anweisung verfügt, enthält der Scope Variables Local-Bereich des Debuggers einen <return>-Eintrag mit dem Wert.

(Ich muss Canary für das Haupt-Debugging verwenden, das ich mache, habe aber das Vorhandensein des <return>-Eintrags erst bemerkt, als er die referenzierte notice in der Ausgabe sah!)

23
klm

Meine Chrome-Version ist 41.0.2272.118 m. Dies ist ein guter Grund, warum Sie komplexe Rückgabeanweisungen in einer separaten Zeile platzieren sollten. Wenn Sie nach der Rückkehr einen Haltepunkt in einer beliebigen Zeile hinzufügen, fügt Chrome (in diesem Beispiel) ein Blatt "<return>: true" unter dem Knoten "Local" des Bereichs "Bereichsvariablen" des Bereichs "Quellen" ein, wenn der Haltepunkt ist schlagen.

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

Ich benutze Chrome Version 57.0.2987.98 Beta (64-Bit) und es ist da drin und wirklich schön zu haben. Hier ist ein Screenshot:

 enter image description here

5
moodboom

Nein, derzeit gibt es keinen Weg.

Es gibt jedoch eine offene Erweiterungsanforderung dafür. Es ist zugewiesen, und ab diesem Zeitpunkt wartet es auf diese V8-Erweiterung .

3
T.J. Crowder

Wenn Sie einen Haltepunkt setzen, können Sie mit der Maus über die Variablen fahren und zeigen, was die Werte sind. Funktioniert das für das, was Sie versuchen?

1
Waynn Lue

In Chrome ist dies immer noch nicht möglich, aber in Firefox 24+. Sie müssen aus einer Funktion herausspringen (Umschalt + F11), und es wird der Rückgabewert oder die im Funktionsbereich geworfene Ausnahme angezeigt.

0

Vielleicht reicht das aus?

1.) Seitenquelle anzeigen.

2.) Suchen Sie nach der Funktionsdefinition und kopieren Sie sie in Ihre Zwischenablage.

3.) Ändern Sie die Funktionsdefinition in Ihrer Zwischenablage, um den Wert zu protokollieren, den sie zurückgeben wird. (d.h. console.log(x); return x;)

4.) Fügen Sie die gepatchte Funktionsdefinition in die Konsole ein und führen Sie sie aus. Dadurch wird die vorhandene Funktion überschrieben.

5.) Löst die Funktion aus.

0
Bez Hermoso