JavaScript & dump мгновенного состояния системы

Xakez
На сайте с 20.12.2008
Offline
96
643

Здравствуйте.

Если взять программирование на C++ то мы имеем возможность получить dump состояния системы во время падения (соответственно, этот файл мы можем взять - разобрать в студии и понять почему случился крах).

Есть ли какой-нибудь подобный механизм для JavaScript?

Интересует именно : контекст функции в которой случилось падение и аргументы данной функции.

Монетизация WAP трафика. Конверт 1:8!!! (http://wap.click/?invite=1548)
Милованов Ю.С
На сайте с 24.01.2008
Offline
197
#1

Если правильно Вас понял - Firebug.

Или же интересует логирование глюков?

Да и как у клиента(браузера) Вы собираетесь забирать log-файл;)

Вообще-то Си++ компилируемый, а JS - интерпритируемый(JIT не в счет:)), да и специфика слишком разная, чтобы делать сравнения.

Подпись))
Ayavryk
На сайте с 11.10.2003
Offline
209
#2

Того же самого нет, но есть отдаленно похожее.

1. Включаете Firebug

2. Когда возникает ошибка лезете в консоль

3. Смотрите ошибку. Под ошибкой текст строки в которой произошла ошибка с темно-красным кружком

4. Тыкаете туда мышкой и устанавливаете точку прерывания в момент ошибки

5. Перезапускаете. Firebug автоматом будет перепуливать вас на отладчик и делать там остановку для просмотра контекста вызова и стека вызовов (две разные вкладки в правой части инспектора)

Проблема только что отладчик все время там будет останавливаться. Т.ч. придется какие-то доп шаги предпринимать - try-catch и т.п.

Милованов Ю.С:
Да и как у клиента(браузера) Вы собираетесь забирать log-файл;)

Не такая плохая мысль, кстати. Логи если нет аварийной ситуации иногда полезно вести. В некоторых TV, там где отладчиков нет, логи можно писать на сервер, в мобильниках обязательно удаленные отладчики появтся (если еще не появились)

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/
Xakez
На сайте с 20.12.2008
Offline
96
#3

Гугл, славься!))

window.onerror = function(a,b,c){

//тут делаем запрос на сервер в некий скрипт, который сохраняет логи
в параметрах
a - ошибка
b - файл
с - строка
}

ну в случае ужатых скриптов мы ничо интересного не получим, и в этом случае надо еще что-то типо этого юзать:


$(window).error(function(msg) {
msg - и в этой переменной просто АДЦКАЯ структура, которая содержит в себе оооочень много инфы
});

вот счас ищу в msg название функции в которой упало)

Милованов Ю.С
На сайте с 24.01.2008
Offline
197
#4

ТС, а в чем идея?

То есть если у юзера возникли ошибки - Вы шлете их к себе на сервер и в дальнейшем воспроизводите ошибку, ну и фиксите ее. Я правильно понял?

Идея в принципе грамотная, но только на приложениях, где дофига JS'a, а если пару сотен строк кода - можно запросто добиться работоспособности на 95(99)%;)

IL
На сайте с 20.04.2007
Offline
412
#5
Милованов Ю.С:
можно запросто добиться работоспособности на 95(99)%

Прикол в том, что некоторые ошибки проявляются в зависимости от окружения.. и оттестированное на 95% (и даже на 146%) приложение может выдать ошибку при нахождении луны в третьей фазе определённом стечении обстоятельств.. Вот по возможности максимально полную инфу об этих обстоятельствах и пытаться собрать для воспроизведения и/или "фиксации" бага.

Ayavryk
На сайте с 11.10.2003
Offline
209
#6
Xakez:
window.onerror

Он даст только номер строки и тип ошибки. требуемый дамп окружения из него не вытянешь

Xakez
На сайте с 20.12.2008
Offline
96
#7
Милованов Ю.С:

То есть если у юзера возникли ошибки - Вы шлете их к себе на сервер и в дальнейшем воспроизводите ошибку, ну и фиксите ее. Я правильно понял?

Именно в этом и идея.

ivan-lev:
Прикол в том, что некоторые ошибки проявляются в зависимости от окружения.. и оттестированное на 95% (и даже на 146%) приложение может выдать ошибку при нахождении луны в третьей фазе определённом стечении обстоятельств.. Вот по возможности максимально полную инфу об этих обстоятельствах и пытаться собрать для воспроизведения и/или "фиксации" бага.

ошибки валятся вообще в непонятных местах - именно поэтому и хотим получить окружение..

Ayavryk:
Он даст только номер строки и тип ошибки. требуемый дамп окружения из него не вытянешь

Вот тут: $(window).error(function(msg)

есть тьма инфы - если вытяну от сюда окружение - отпишусь)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий