Czy mogę powiedzieć debugerowi skryptów Chrome, aby ignorował plik jquery.js?

98

Czy istnieje sposób, aby powiedzieć debugerowi Chrome (a może Firebug?), Aby nie przerywał niektórych plików? Zakładać, że zasadniczo nie są zepsute? Wygląda na to, że mogą coś wbudować.

Josh Schultz
źródło
3
Byłoby to dla mnie szczególnie przydatne w kontekście wydarzeń jquery. Kiedy zdarzenie jest wyzwalane, musisz przejść przez wiele błędów, aby dowiedzieć się, które procedury obsługi są wywoływane.
tofarr
Wygląda na to, że jako odpowiedź należy oznaczyć jfriend00. Nie mogłem znaleźć przyczyny tego irytującego zachowania, a jego odpowiedź rozwiązała problem.
OrPaz
@OrPaz Nie zgadzam się, moim problemem (i moim zrozumieniem problemu Josha) jest to, że debugujemy nasz plik, jednak nie oznacza to, że wyrzucany jest wyjątek. Zakładam, że problem stanowi mój kod, a nie jQuery, więc nigdy nie chcę debugować jQuery. Myślę o tym jak o DebuggerHiddenAttribute w .NET
Nathan Koop
Głosowałem za odpowiedzią jfriend00, ponieważ może być cenna dla osób, które natkną się na to pytanie, ale nie zaznaczyłem jej jako poprawnej, ponieważ Nathan Koop ma rację, nie rozwiązuje mojego problemu.
Josh Schultz

Odpowiedzi:

47

Pliki JS Blackboxing są teraz możliwe w przeglądarce Firefox https://developer.mozilla.org/en-US/docs/Tools/Debugger

Oraz w Chrome Canary przy użyciu eksperymentalnych narzędzi programistycznych. http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code-while-debugging-in-chrome/

Aktualizuj . W Chrome v. 75 jest oddzielna zakładka do blackboxingu.

Powyższe działa teraz również w stabilnej wersji Chrome.

Nirmal Patel
źródło
7
Wydaje się, że Blackboxing nie powoduje, że debugger pomija plik. Nadal przejdzie przez swoje wywołania funkcji ... Całkowite zignorowanie pliku byłoby miłe.
Antonio Brandao,
4
O to właśnie chodzi w blackboxingu - uruchamianie kodu bez oglądania jego zawartości.
diynevala
1
To nie jest blackboxing, kiedy po prostu nie przechodzisz przez inne biblioteki, nie to, że nie istnieją lub nie są używane.
johnny
zaktualizowany link do firefox: developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/ ...
pcarvalho
31

W najnowszej wersji Chrome zaimplementowano nową funkcję czarnej skrzynki, która robi dokładnie to, czego szukasz. Zasadniczo, gdy ustawisz opcję czarnej skrzynki na danym pliku, zapobiegnie to włamaniu się debugera Chrome do tego pliku.

Ta funkcja jest wbudowana i można ją ustawić za pomocą menu kontekstowego pliku (prawym przyciskiem myszy). Będzie również działać, jeśli debugger Chrome jest ustawiony na zatrzymywanie się we wszystkich wyjątkach.

The_Black_Smurf
źródło
2
bardzo czyste rozwiązanie Nie potrzeba żadnych wtyczek.
George Botros
3
Niestety już nie działa. Jeśli zaznaczyłeś "Pause On Caught Exceptions", a następnie blackbox jQuery nadal będzie się łamał na wyjątkach.
blackmamba
15

Jeśli problem, który masz, polega na tym, że debuger Chrome zatrzymuje się we wszystkich wyjątkach, nawet tych w jQuery, być może będziesz musiał powiedzieć Chrome, aby wstrzymywał tylko w przypadku nieprzechwyconych wyjątków, a nie wszystkich wyjątków. W panelu Skrypt w debugerze w lewym dolnym rogu okna znajduje się ikona, która to kontroluje.

jfriend00
źródło
Uratował mnie tym! Dzięki! (+ 1)
OrPaz
12

W Chrome otwórz Narzędzia dla programistów, a następnie przejdź do Ustawień, a zobaczysz kartę Blackbox :

Chrome Blackbox

W FireFox jest to jeszcze łatwiejsze, po prostu kliknij Oko na dole pliku:

FireFox Blackbox

sMyles
źródło
Właśnie uczyniłeś moje życie niebem! Dzięki!
Nie wiem,
7
  1. Przejdź do ustawień narzędzi programistycznych i kliknij kartę Balckboxing w lewym panelu.
  2. Następnie kliknij przycisk Dodaj wzór i wpisz jquery.js
  3. Zamknij i ponownie otwórz narzędzia programistyczne, teraz zostało pominięte!
Mahmood Asadi
źródło
2

Jeśli debugger wysadza gdzieś w plikach jQuery, możesz potencjalnie zawinąć podejrzane wywołania w try / catch, a następnie zgłosić błąd we własnym catch. W ten sposób możesz dokładnie określić, gdzie idziesz źle.

Byłbym bardziej skłonny zrobić ślady stosu, aby zobaczyć, dlaczego mój kod się wysadza, np. Nieprawidłowy JSON, niż spróbować go nabłyszczać.

Kelly Sutton
źródło