Имя: Пароль:
IT
Веб-мастеринг
[JavaScript] Как программно приостановить выполнение скрипта при ошибке Chrome?
, ,
0 D_Pavel
 
18.10.16
00:03
В IE есть удобная фишка, что при ошибке в скрипте выскакивает окно с кнопкой запустить отладчик.
В хроме в отладчике нашел только делать паузу при ошибке, но это работает только если DevTools уже открыт. Как отловить ошибку если отладчик спрятан?
1 Asmody
 
18.10.16
00:08
А вы все алертами дебажите?
2 Torquader
 
18.10.16
01:14
А не проще ли отладить по частям, а потом собрать воедино ?
3 D_Pavel
 
18.10.16
01:30
(1) нет.

(2) Проще чем что?
4 Torquader
 
18.10.16
01:39
(3) Чем пытаться отлаживать всё в куче - если каждая функция отлажена и возвращает то, что нужно, код будет работать, как нужно, а если в функциях ошибки, то они будут всплывать по мере расширения диапазона их входных значений - в итоговом коде все ситуации намного сложнее предусмотреть, чем при вызове отдельных функций.
5 D_Pavel
 
18.10.16
16:50
(4) Это и так понятно. Но давайте не отклоняться от темы. Как все-таки заставить остановиться скрипт и вызвать отладчик?
Как советовал (1) Asmody через алерт не получится, потому что пока он висит в отладчик зайти нельзя. А когда его закрываешь скрипт выполняется дальше.
6 Лефмихалыч
 
18.10.16
16:53
(0) может использовать для отладки IDE какой-нибудь, который умеет брэйкпоинты? NetBeans тот же, например...

(5) Asmody как раз не советует, а иронично порицает
7 D_Pavel
 
18.10.16
16:54
Я уже придумал один дурацкий но рабочий способ (утро вечера мудренее).
Но может есть нормальный варик?
8 Garykom
 
гуру
18.10.16
16:55
(5) Через плагины для барузеров и как правильно заметил в IDE уже давно все есть https://netbeans.org/kb/docs/webclient/html5-js-support_ru.html
9 Garykom
 
гуру
18.10.16
16:55
10 Garykom
 
гуру
18.10.16
16:56
(8) *браузеров
11 D_Pavel
 
18.10.16
16:56
(6) NetBeans умеет подключаться к хрому? Сомневаюсь. Нужно тратить время чтобы это выяснить.
Про Asmody в курсе.
12 Мойдодыр
 
18.10.16
16:57
а что в хроме брейкпойнтов нет?
13 Garykom
 
гуру
18.10.16
16:58
(11) А ты не сомневайся а попробуй
14 D_Pavel
 
18.10.16
16:58
(12) Когда отладчик закрыт, "остановка по ошибке" не работает
15 Лефмихалыч
 
18.10.16
16:58
(11) окуеть... Вообще-то умеет. Через расширение, вот такое:
https://i.imgur.com/mpVLypt.png
16 Garykom
 
гуру
18.10.16
16:59
17 D_Pavel
 
18.10.16
16:59
(13) (15) И что, его можно будет закрыть, и когда появится ошибка он запустится сам???
18 Garykom
 
гуру
18.10.16
17:01
(17) Ты плохо заточенный или или прикидываешься? ;) привыкли блин к 1С-ке где из режима предприятия отладка вызывается...

Но в принципе да можно такое расширение сделать только науя?
19 Лефмихалыч
 
18.10.16
17:04
(17) повторюсь: окуеть...
Ты в IDE запускаешь отладку и этот самый IDE запускает хром, который доходит до точки останова и управление возвращается в IDE
20 Лефмихалыч
 
18.10.16
17:05
главное - не пробовать самому. Никогда. А то вдруг получится...

D_Pavel, а ты код пишешь в notepad.exe или в notepad++.exe?
21 Мойдодыр
 
18.10.16
17:05
(20) так можно и встренным отладчиком воспользоваться
22 D_Pavel
 
18.10.16
17:05
(19) Зачем тогда IDE если встроенный отладчик в хроме делает то же самое?
23 Лефмихалыч
 
18.10.16
17:06
(22) затем, что встроенный этот твой отладчик не умеет (0)
24 D_Pavel
 
18.10.16
17:07
(23) Ты в (19) писал что твой вариант тоже не умеет
25 Лефмихалыч
 
18.10.16
17:09
(24) netbeans умеет остонавливаться по ошибке точно так же. Ты заускаешь отладку, он запускает хром и возвращает управление в netbeans, когда эксепшон стреляет. Как, в общем-то, любой отладчик
26 D_Pavel
 
18.10.16
17:10
(25) Если для этого netbeans должен быть запущен, то этот вариант не подходит.
27 D_Pavel
 
18.10.16
17:10
(25) >> Как, в общем-то, любой отладчик
Вот именно. Как и встроенных хромовский
28 Лефмихалыч
 
18.10.16
17:11
Ты у клиента что ли хочешь в отладчике покопаться?
29 D_Pavel
 
18.10.16
17:12
(28) Нет
30 Garykom
 
гуру
18.10.16
17:12
(28) Он походу не понимает что js в продакшене (в браузере с сайта готового) это не тот js исходный код в котором можно легко покопаться ))
31 Лефмихалыч
 
18.10.16
17:13
(30) да х/з. Но в одном ты прав - в этой ветке кто-то что-то не понимает.
32 D_Pavel
 
18.10.16
17:15
(30) Лажанулся и пытаешься других очернить? Не по мужски.
33 Garykom
 
гуру
18.10.16
17:17
(32) Пойми что js пользователи не отлаживают.

Отладкой JS занимаются программисты и обычно с IDE привычной и исходным кодом.
34 Garykom
 
гуру
18.10.16
17:20
Сча в планах WebAssembly https://habrahabr.ru/post/261205/

Это будет скомпилированный машинный код (вместо js) в браузере а не как сча когда js (даже после обфускатора/сжатия) неудобно но можно поковырять.
35 Лефмихалыч
 
18.10.16
17:20
(33) там, как я понял, вся разработка ведется в девтулзе, а про IDE ни кто не слышал...
36 Garykom
 
гуру
18.10.16
17:23
(35) Ну тогда пусть наваяет расширение которое будет перехватывать и открывать для отладки в DevTools ))
37 Лефмихалыч
 
18.10.16
17:24
(36) так для этого тем более IDE надо, а это не по вере: (22)
38 D_Pavel
 
18.10.16
17:35
(33) Зачем повторяешься?
39 D_Pavel
 
18.10.16
17:36
(34) Баян
40 D_Pavel
 
18.10.16
17:38
(35) Кончай фантазировать в моей теме. Создай свою, и пиши там свои предположения. У меня тут вопрос решается. Не можешь ответить, не пиши.
41 Мойдодыр
 
18.10.16
17:50
(40) Опиши свой юзеркейс
42 D_Pavel
 
18.10.16
17:52
(41) Это что такое и зачем его описывать?
43 Мойдодыр
 
18.10.16
17:54
Чтобы мы могли тебе помочь.
Откуда возникает потребность делать именно так.
Т.е по шагам с самого начала
44 Лефмихалыч
 
18.10.16
17:54
еще одна коса на камень налетела...
45 Мойдодыр
 
18.10.16
18:00
(43) То бишь очевидно что в лоб решения у твоей задачи нет.
нужно искать обходные пути. а для этого нужно (41)
46 D_Pavel
 
18.10.16
18:13
(45) Не думаю что это чем-то поможет. Но смотри:
Есть виртуальные машины с очень маленьким объемом оперативки.
В них крутится мой скрипт, написанный под расширение для хрома tampermonkey.
Иногда (пару раз в неделю) могут возникать непонятные глюки, которые трудно отловить. В общем это не страшно, но часть данных при этом теряется, и хотелось бы посмотреть причину(ы) этих глюков.
Я сделал так что при возникновении ошибки скрипт отправляет мне сигнал об этом, с некоторыми данными, но по ним не видно причины ошибки и не возможно ее повторить.
Поэтому я хочу покопаться в отладчике.
Теперь самое главное: если подключить отладчик и оставить его, то через два-три дня он сжирает всю память.
47 Garykom
 
гуру
18.10.16
18:17
(46) А нефиг накруткой рекламы заниматься...
48 D_Pavel
 
18.10.16
18:18
(47) Так не занимайся
49 D_Pavel
 
18.10.16
21:53
В общем проблема в том, что отладчик не может подключиться к работающему скрипту.
Как остановить скрипт чтобы подключить отладчик, а потом продолжить работу с того же места я не знаю.
50 D_Pavel
 
18.10.16
21:54
Причем эта проблема только в хроме. В IE и Edge все чотко работает.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.