2012-03-12 14 views
38

Wychodząc z gdb, wyświetli wartość zwracaną przez funkcję po jej zakończeniu. Czy istnieje sposób na uzyskanie tych informacji z debugera Chrome bez zmiany debugowanego źródła?Jak sprawdzić wartość zwracaną przez funkcję JavaScript w debugerze Chrome?

+0

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

+0

Mówi, że chce to zrobić bez zmiany źródła. –

+0

Czy masz na myśli to, że za każdym razem, gdy jakaś funkcja zwraca wartość, chcesz ją zarejestrować na konsoli? Twoja konsola zostanie zalana wiadomościami i prawdopodobnie zawiesi się, jeśli wystąpią jakiekolwiek rekurencje lub podobne rzeczy. –

Odpowiedz

20

A fix for this został zaimplementowany od 5 listopada 2013 r., Ale najwyraźniej jest tylko wydany, piszę to w Chrome Canary. (Widzę to w wersji 33.0.1719.0, ale nie widzę go w wersji Beta wersji beta 32.0.1700.19).

Jeśli wersja, którą właśnie uruchomiłeś, ma ją, to po przejściu przez instrukcję return Lokalny zakres debuggera Scope Variables zawiera wpis <return> z wartością.

(muszę korzystać Kanaryjskich głównej debugowania robię, ale nie zauważył obecność wejścia <return> aż widząc odwołuje notice w tej kwestii!)

+5

Czy jest dostępna nazwa zmiennej, abyśmy mogli ją wydrukować w konsoli? Dzięki – nXqd

+0

@nXqd Tak, jest sposób. Jak [ta odpowiedź] (https://stackoverflow.com/a/42771620/578288) na "[Czy możliwe jest manipulowanie wartością zwracaną w debugerze chrome?] (Https://stackoverflow.com/q/33108456/ 578288) "wyjaśnia, możesz kliknąć prawym przyciskiem myszy" * Zwróć wartość * "w zasięgu lokalnym i wybrać" Zapisz jako globalną zmienną ". –

1

Jeśli ustawisz punkt przerwania, możesz najechać kursorem myszy na zmienne, a zobaczysz, jakie są wartości - czy to działa dla tego, co próbujesz zrobić?

+2

Zwracane wartości funkcji nie zawsze są zapisywane w zmiennych. Byłoby wspaniale, gdyby na pasku bocznym znajdowała się automatyczna zmienna lub obserwowana wartość "ostatniej zwróconej wartości". –

+1

Tak, to prawda. Niestety, nie sądzę, że istnieje sposób, aby zobaczyć ostatnią zwróconą wartość z funkcji. –

0

Może to zrobi?

1.) Wyświetl źródło strony.

2.) Poszukaj definicji funkcji i skopiuj ją do schowka.

3.) Zmodyfikuj definicję funkcji w schowku, aby zarejestrować wartość, którą zamierzasz zwrócić. (tj. console.log(x); return x;)

4.) Wklej definicję funkcji łatki do konsoli i uruchom ją. Spowoduje to zastąpienie istniejącej funkcji.

5.) Wywołać funkcję.

0

W Chrome nadal nie jest możliwe, ale jest możliwe w przeglądarce Firefox 24+. Musisz Wycofać (Shift + F11) z funkcji, a wyświetli ona wartość zwracaną lub wyjątek wyrzucony w polu Zakres funkcji.

4

Moja wersja Chrome jest 41.0.2272.118 m. Oto jeden dobry powód, dla którego powinieneś umieszczać złożone instrukcje zwrotne w osobnej linii. Jeśli dodasz punkt przerwania w dowolnej linii po powrocie, Chrome doda (w tym przykładzie) "<return>: true" liść pod węzłem "Lokalny" panelu "Zakresy zmiennych" panelu Źródła, gdy punkt przerwania jest trafienie.

+0

IMO, to jest odpowiedź na to pytanie i zadziałało dla mnie na Chrome 52. (co nie jest kanarkiem) – Tongfa

1

Używam Chrome w wersji 57.0.2987.98 beta (wersja 64-bitowa) i jest tam i naprawdę miło mieć. Oto zrzut ekranu:

enter image description here

Powiązane problemy