2012-03-12 10 views
38

Venendo da gdb, al termine della stampa stamperebbe il valore di ritorno di una funzione. C'è un modo per ottenere queste informazioni dal debugger di Chrome senza cambiare la fonte che viene sottoposta a debug?Come verificare il valore restituito dalla funzione JavaScript nel debugger di Chrome?

+0

var a = abc(); console.log (a); –

+0

Sta dicendo che vuole farlo senza cambiare la fonte però. –

+0

Intendi dire che ogni volta che una funzione restituisce un valore, vuoi che venga registrato nella console? La tua console verrà inondata di messaggi e probabilmente si bloccherà se ci saranno ricorsioni o cose simili in corso. –

risposta

20

A fix for this è stato implementato a partire dal 5 novembre 2013, ma a quanto pare viene rilasciato solo, mentre sto scrivendo questo, in Chrome Canary. (Lo vedo in 33.0.1719.0.0, ma non lo vedo nella beta di versione beta di Chrome 32.0.1700.19.)

Se la versione in esecuzione lo ha, quindi quando si passa attraverso una dichiarazione di ritorno, l'ambito locale Scope Variables del debugger include una voce <return> con il valore.

(ho bisogno di usare Canarie per il debug principale che faccio, ma non ho notato la presenza della voce <return> fino a vedere il riferimento notice nel numero!)

+5

È disponibile un nome di variabile per poterlo stampare in console? Grazie – nXqd

+0

@nXqd Sì, c'è un modo. Come [questa risposta] (https://stackoverflow.com/a/42771620/578288) a "[È possibile modificare il valore di ritorno nel debugger di Chrome?] (Https://stackoverflow.com/q/33108456/ 578288) "spiega, è possibile fare clic con il pulsante destro del mouse su" Valore restituito * "nel campo Ambito locale e scegliere" Salva come variabile globale ". –

1

Se si imposta un punto di interruzione, è possibile passare il mouse sulle variabili e verrà mostrato quali sono i valori - funziona per quello che si sta tentando di fare?

+2

I valori di ritorno delle funzioni non sono sempre memorizzati nelle variabili. Sarebbe bello se ci fosse una variabile automatica o un valore visto nella barra laterale per "ultimo valore restituito". –

+1

Sì, è vero. Sfortunatamente, non credo che ci sia un modo per vedere l'ultimo valore restituito da una funzione. –

0

Forse questo lo farà?

1.) Visualizza l'origine della pagina.

2.) Cercare la definizione della funzione e copiarla negli Appunti.

3.) Modificare la definizione della funzione negli appunti per registrare il valore che sta per restituire. (ad esempio, console.log(x); return x;)

4.) Incollare la definizione della funzione con patch nella console ed eseguirla. Questo sostituirà la funzione esistente.

5.) Attivare la funzione.

0

Non è ancora possibile in Chrome, ma è possibile in Firefox 24+. È necessario uscire (Shift + F11) da una funzione e visualizzerà il valore restituito o l'eccezione generata nell'ambito della funzione.

4

La mia versione di Chrome è 41.0.2272.118 m. Ecco una buona ragione per cui è necessario inserire istruzioni di reso complesse su una riga separata. Se aggiungi un punto di interruzione su qualsiasi riga dopo il ritorno, Chrome aggiungerà (in questo esempio) un " restituisce >: true" foglia sotto il nodo "Locale" del riquadro "Variabili dell'oscilloscopio" del pannello Fonti quando il punto di interruzione è colpire.

function bar() { 
    return true; 
}  
(function foo() { 
    return bar(); 
})(); // Place breakpoint here 
+0

IMO, questa è la risposta alla domanda e ha funzionato per me su Chrome 52. (che non è Canary) – Tongfa

1

sto usando Chrome versione 57.0.2987.98 beta (64-bit) ed è in là, e davvero bello avere. Ecco uno screenshot:

enter image description here

Problemi correlati