2012-07-23 9 views
24

Zainstalowałem inspektora węzłów tylko po to, aby przekonać się, że nie obsługuje punktów przerwania: | Jaki jest sens w nim w ogóle, pamiętając, że w dużej części kodu węzeł jest asynchroniczne i po prostu nie można śledzić krok po kroku? ..Jak debugować aplikację węzeł js z punktami przerwania i wszystko?

jestem zdecydowanie brakuje tu chodzi ...

W każdym razie, aby debugować kod węzła z punktami przerwania i wszystko?

+0

Prawdopodobny duplikat: http://stackoverflow.com/questions/1911015/how-to-debug-node-js-applications – beny23

+0

Przychodzę od tego miejsca - punkty przerwania nie działają w inspektorze węzłów i nie ma odpowiedzi moje pytanie. Jest tu? – jayarjo

+1

Obsługuje punkty przerwania. Po prostu nie "pamiętam" ich, kiedy odświeżasz stronę inspektora. –

Odpowiedz

16

yupp, z powodzeniem skorzystałem z inspektora węzłów. Jeśli chcesz stałych punktów przerwania, po prostu wstaw debugger; w swoim kodzie. Zobacz http://nodejs.org/api/debugger.html.

Oczekiwanie na węzeł do dołączenia debugera przy użyciu node --debug-brk script.js może być bardzo pomocne.

+0

z debuggerem; to zawiesza: node (31848,0x7fff70e12cc0) malloc: *** błąd dla obiektu 0x10010f690: zwolniony wskaźnik nie został przydzielony *** ustawić punkt przerwania w malloc_error_break do debugowania Przerwij pułapkę – jayarjo

+0

Nigdy nie widziałem tego błędu, przepraszam. Czy proces Twojej aplikacji ulega awarii, czy też jest to inspektor węzłów? Które wersje używasz? Czy używasz natywnych modułów węzła, które mogą się zawiesić? – rdrey

1

Myślę, że można uzyskać odpowiedzi od tego Link

i jeszcze jedno to możesz popchnąć dynamicznych zmian V8 Debugger też.

+1

Nie używam zaćmienia. Czy istnieje inny interfejs do Debugera V8? Jestem świadomy pierwszej linii poleceń, ale wydaje się to bezużyteczne w przypadku dużych skryptów. – jayarjo

1

Wystarczy opracować trochę tutaj:

Ustaw debugger, gdzie chcesz być punkty przerwania, a następnie uruchomić kod z script.js węzeł debugowania/index.js

Gdy debugger zatrzymuje się na ciebie breakpoint, będziesz musiał replikować, aby sprawdzić zmienne.

+0

dziękuję za to, nie wiedziałem o komendzie replikowania –

+0

chcę punktu przerwania, gdziekolwiek wystąpi wyjątek (powiedzmy, że nie wiem z wyprzedzeniem, gdzie to będzie). jak mogę to zrobić? – Michael

+0

można zamiast używać polecenia REPL dodać obserwatorów czasu pracy, wystarczy wpisać np. 'watch ('count')' watchers api wyświetli wartość, gdy debugger zatrzyma się w tej funkcji. –

Powiązane problemy