2012-03-12 30 views
38

Viniendo de gdb, imprimiría el valor de retorno de una función cuando terminara. ¿Hay alguna forma de obtener esta información del depurador Chrome sin cambiar la fuente que se está depurando?¿Cómo inspeccionar el valor de retorno de la función de JavaScript en el depurador de Chrome?

+0

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

+0

Él dice que quiere hacerlo sin cambiar la fuente. –

+0

¿Quiere decir que cada vez que una función devuelve un valor, quiere que se registre en la consola? Su consola se inundará de mensajes y probablemente se bloqueará si se produce alguna recursividad o algo similar. –

Respuesta

20

A fix for this se implementó a partir del 5 de noviembre de 2013, pero aparentemente solo se lanzó, mientras escribo esto, en Chrome Canary. (Lo veo en 33.0.1719.0, pero no lo veo en la versión beta de Chrome Beta 32.0.1700.19 beta.)

Si la versión que está ejecutando la tiene, entonces cuando revisa una declaración de devolución, el alcance local del depurador Scope Variables incluye una entrada <return> con el valor.

(necesito usar Canarias para la depuración principal que hago, pero no se dio cuenta de la presencia de la entrada <return> hasta ver la notice se hace referencia en el tema!)

+5

¿Hay algún nombre de variable disponible para que podamos imprimirlo en la consola? Gracias – nXqd

+0

@nXqd Sí, hay una manera. Como [esta respuesta] (https://stackoverflow.com/a/42771620/578288) a "[¿Es posible manipular el valor de retorno en el depurador de Chrome?] (Https://stackoverflow.com/q/33108456/ 578288) "explica, puede hacer clic con el botón derecho en" * Return Value * "en el alcance Local y seleccionar" Store as Global Variable ". –

1

Si establece un punto de interrupción, puede pasar el mouse sobre las variables y le mostrará cuáles son los valores: ¿eso funciona para lo que está tratando de hacer?

+2

Los valores de retorno de función no siempre se almacenan en variables. Sería genial si hubiera una variable automática o un valor mirado en la barra lateral para "último valor devuelto". –

+1

Sí, es cierto. Lamentablemente, no creo que haya una forma de ver el último valor devuelto por una función. –

0

¿Quizás esto servirá?

1.) Ver el origen de la página.

2.) Busque la definición de la función y cópiela en su portapapeles.

3.) Modifique la definición de la función en su portapapeles para registrar el valor que está por devolver. (es decir, console.log(x); return x;)

4.) Pegue la definición de la función parcheada en la consola y ejecútela. Esto anulará la función existente.

5.) Dispare la función.

0

Todavía no es posible en Chrome, pero es posible en Firefox 24+. Necesita Salir (Shift + F11) de una función, y mostrará el valor devuelto o la excepción lanzada en el alcance de la Función.

4

Mi versión de Chrome es 41.0.2272.118 metro. Esta es una buena razón por la que debe colocar declaraciones de devolución complejas en una línea separada. Si agrega un punto de interrupción en cualquier línea después de la devolución, Chrome agregará (en este ejemplo) una hoja "<return>: true" debajo del nodo "Local" del panel "Variables de Alcance" del panel Fuentes cuando el punto de corte es golpear.

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

IMO, esta es la respuesta a la pregunta, y funcionó para mí en Chrome 52. (que no es Canary) – Tongfa

1

estoy usando Chrome 57.0.2987.98 versión beta (64 bits) y que está ahí, y realmente agradable de tener. Aquí es una captura de pantalla:

enter image description here

Cuestiones relacionadas