2016-07-11 10 views
9

Widzę dziwne zachowanie z narzędzi wirtualnych Chrome. Ustawiłem punkt przerwania w moim javascript, a następnie trafienia punktu przerwania i zatrzymanie wykonywania.Chrome webtools debugger wznawia wykonywanie skryptu samodzielnie.

Okno kodu pokazuje punkt w moim kodzie, w którym znajduje się punkt przerwania (okno ma żółtawe tło), a następnie po 5 sekundach auto-magiczne wznowienie następuje bez powiadomienia mnie o tym.

Czy ktoś jeszcze to widział? To oczywiście bardzo utrudnia mi debugowanie.

EDYCJA: To Chrome zdalnie debuguje aplikację Android WebView. Nie wspomniałem o tym w oryginalnym poście.

Nagrałem sesję, w której ponownie wczytałem stronę po ustawieniu 3 punktów przerwania. Po ponownym wczytaniu strony nie dotknąłem klawiatury ani myszy. Możesz zobaczyć Chrome automatycznie wznawiający here. (Przepraszamy za link poza siedzibą) W tym przypadku tło okna JS nie zmieniło się na żółte w przypadku niektórych instancji.

Dzięki

+0

Zrzut ekranu? To pytanie jest z technicznego punktu widzenia nie na temat, ponieważ nie można go odtworzyć. –

+0

Może być głupie pytanie, ale czy dzieje się to w zwykłym wanilii Chrome/bez włączonych rozszerzeń? –

+0

Film naprawdę pomógł. Słuchaj, co jeśli spróbujesz owinąć podejrzany kod blokiem try/catch i spróbujesz zarejestrować ewentualny błąd? Nie podoba mi się pomysł, że Chrome powoduje ten problem. Spróbuj zarejestrować dowolny błąd, a jeśli go nie ma, umieść "debugger;" instrukcja w innej części kodu. Wtedy dowiemy się, czy to Chrome, czy nie. – n0m4d

Odpowiedz

6

I w końcu zorientowali się, co było przyczyną debugger, aby przejść do „auto dalej” tryb. Moja aplikacja na Androida korzystała z interfejsu API loadUrl Androida WebView do wykonywania niektórych JS na stronie. To było na zegar dzwoni do JS co 5 sekund za pomocą tego połączenia:

webView.loadUrl("javascript:" + callBack + "('" + cbData.toString() + "');"); 

To najwyraźniej powoduje Chrome, aby wznowić wykonywanie tak, że można go wykonać kod JS aplikacja żąda.

Jestem rozczarowany, że tak długo zajęło mi śledzenie tego.

Sprawia debugowania JS trochę trudne IMO jeśli w dowolnym czasie runtime decyduje się na starcie na Ciebie ...

Zamierzam zrobić rozeznanie i sprawdzić, czy mogę znaleźć nic na ten temat na Googles .

Powiązane problemy