Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.02.2015, 03:56
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 1  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
По умолчанию Удаленная отладка

Здравствуйте, имеется flash игра, внутри нее стоит слушатель исключений, который сохраняет их на сервер.
Но понять точно что и где глюкануло, по этому логу очень сложно, просто видно наличие ошибок.
Код AS3:
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, function(e:UncaughtErrorEvent) {
e.preventDefault(); 
saveStat('clientError', e.error.code+e.error.message); });
получить Стек вызовов в release версии не удается, воспроизвести их самому в debug версии - тоже.
Как можно извлечь максимум информации ,о том где сидят баги?

Старый 02.02.2015, 15:23
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Писать более красивый и понятный код. На самом деле понять легко, в исключении пишется название метода, ага - уже неплохо. Далее если метод не на 1000 строк ( а это заведомо плохой код ) - то по логике можно понять где возможность падения на null pointer или типа того.
Я уже давно использую данный способ для отладки, и в 90% случаях сразу понятно что и где падает, в редких 10% приходится более деатальный анализ проводить, форсировать отправку данных и т.п.
__________________
Марк Tween

Старый 02.02.2015, 17:26
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 3  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
В том то и дело, что выводит только код ошибки и ее название, место где она произошла - нету. в документации написано что getStackTrace работает только в debug версии и AIR

Старый 03.02.2015, 13:47
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 4  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Да тоже сталкивался с этой проблемой и тоже пытался отправить данные по ошибке на сервер. С релизной версией решения нет, можно только попросить юзера у которого валится ошибка поставить дебажную версию плеера.

Старый 03.02.2015, 16:18
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 5  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Не придумывайте ! Все в релизной пишется! Не пишется ТОЛЬКО конкретная строчка кода, а метод и класс в котором упало пишется! Вечером скину рабочий код

Добавлено через 3 часа 3 минуты
Код AS3:
private static function uncaughtErrorHandler(e:UncaughtErrorEvent):void
        {
			e.preventDefault();
 
			errorString += e.error.getStackTrace() + "\n\n";
			field.htmlText = errorString;
 
 
 
 
            if (e.error is Error)
            {
                var error:Error = e.error as Error;
				errorString += error.message + "\n";
            }
            else if (e.error is ErrorEvent)
            {
                var errorEvent:ErrorEvent = e.error as ErrorEvent;
				errorString += errorEvent.text + "\n";
            }
            else
            {
				errorString += e.error.toString() + "\n";
            }
 
			field.htmlText = errorString;
        }
Что то типа того, в релизе будет показывать имя метода и класс

Добавлено через 3 часа 5 минут
Да и кстати, это неоптимизированная часть, вы можете просто отработать getStackTrace() и все. В релизе будет ОК!
__________________
Марк Tween

Старый 03.02.2015, 22:11
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 6  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Спасибо, скопмелировал код под 11.5 версию плеера. Но влог по прежнему идет null. У игроков как я понимаю тоже должна стоять версия 11.5+ , у тех кого младше - просто не работает?

Старый 04.02.2015, 03:50
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Покажи, что идет в ЛОГ. В логе должно быть что то типа : лалала 1090 error, on Main.init() алалала если в мейне падало. То есть указание на конкретный метод должно быть
__________________
Марк Tween

Старый 04.02.2015, 09:08
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 8  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
До определённой версий релизного плеера, (Не помню точно какой) getStack не возвращал стек вызова.
__________________
Дети не должны знать о своих родителях

Старый 04.02.2015, 10:21
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 9  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Да точно, погуглил, http://stackoverflow.com/questions/1...e-flash-player я тогда работал с более младшей версией плеера. 11.5+ возвращает stacktrace. И swf-version должна быть не ниже 18.

Старый 04.02.2015, 13:17
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 10  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Спасибо, теперь работает)

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:54.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.