Отладка по-темному
Относительно вывода отладочной информации из флэшки без использования файрбагов и прочих внешних аппаратно-программных приблуд.
Достоинства:
1. Не загромождаем основную флэшку всяким дебаг-окнами, отладка видна в любой момент, без перекрытия текущих данных в рабочей флэшке.
2. Не требуется ничего устанавливать и настраивать.
3. Очень просто и удобно "выдать" юзеру отладчик - достаточно УРЛ, на котором он лежит, или просто выслать сам файл.
4. Очень просто получить с юзерам требующиеся данные в текстовом виде.
Итак сам отладчик. Внешняя флэшка, которая обычно запускается перед запуском отлаживаемого приложения:
REMOTE_DEBUGGER_LOG.rar
Код, который вставляется в рабочую флэшку в первый кадр на _level0
var channelName = "_remotedbg" var sending_lc:LocalConnection = new LocalConnection() // Отправитель sending_lc.onStatus = function(infoObject:Object) { switch (infoObject.level) { case 'status' : break; case 'error' : break; } } function addDbgInfo( txt ){ sending_lc.send( channelName , "getTRACE", txt ) } function addSOKInfo( txt ){ sending_lc.send( channelName , "getSOCKET", txt+"\n" ) } function calcTotalBytes( num ) { _level0.loadBytesTotal += num sending_lc.send( channelName ,"getBYTES", Math.round ( сумма_полученных_байтов_из_лоадеров / 1024 ) +" KB") } function fullDbgInfo( txt ) { sending_lc.send( channelName , "getFULL", txt ) }
Кнопка "КРЕСТИК" - это кнопка "Очистить окно".
После 50секундной неактивности, в текст окна добавляется timestamp.
Как можно легко догадаться, вся отладочная информация, таким образом, достаточно наглядно и просто структуризируется и раскрашивается. В данном случае я использую три окна для:
1. Замена обычных трейсов по всей целевой области:
_level0.addDbgInfo(" <FONT COLOR='#00FF00'>LOADER START: [ "+URLREAL+" ] targetMov: "+mov+"</FONT>\n" )
2. Данные по сокету ( который есть в приложении ) идут во второе окно:
_level0.addSOKInfo( "Connecting to socket [ "+socketName+":"+socketPort+" ]" )
_level0.addSOKInfo( "<FONT COLOR='#00FFFF'>Login:OK.</FONT>" )
3. Ну и в третье окно я сбрасываю полный XML ответ сервера:
_level0.fullDbgInfo( my_xml )
Несмотря на замечания о большой ресурсоемкости localConnection, даже на офисном компе работа отладчика тормозов не вызывает. Есть тормоза при выводе ДЕСЯТКОВ строк кода при циклическом выводе, но это уже, как я понимаю, проблема всей ОС в целом.
Он работает в любом браузере (относительно отлаживаемой флэшки), в любой вкладке и просто в стэндэлон-плэере.
Все используемые в дебаггере фонты любезно позаимствованы у iNils
Всего комментариев 30
Комментарии
01.02.2011 13:01 | |
Используйте SOS max.
Не надо ничего устанавливать — скачал, распаковал запустил, наслаждаешься. Куча уровней трейса с фильтрацией, раскрывающиеся сообщения. |
|
Обновил(-а) mayakwd 01.02.2011 в 13:03
|
01.02.2011 13:09 | |
Цитата:
MAINPATH?
По сути извсего что там надо _remotedbg, getTRACE и getSOCKET - имена методов дебаггера и имя канала. Классы, функции и штмл-тэги - это все часть ВАШЕГО клиента, которую вы можете писать на свой вкус и цвет Я ж не продаю это, я описал простенький, но удобный метод вывода трассировок Цитата:
Не надо ничего устанавливать — скачал, распаковал запустил, наслаждаешься.
В том же ВКонтакте? |
|
Обновил(-а) dark256 01.02.2011 в 13:11
|
01.02.2011 13:13 | |
Реально - нет.
|
01.02.2011 13:17 | |
Ну а вот мне, к сожалению, приходится и очень много ))
Кстати я так и не понял как юзать этот СОС ))) |
|
Обновил(-а) dark256 01.02.2011 в 13:25
|
01.02.2011 13:26 | |
Ух, сколько логгеров. И каждому свой милее)
Для меня удобный самописный, интегрированный в ide логгер, а для тестеров встроенное окно в флешку. |
01.02.2011 13:40 | |
Плох тот флэшер, который ни разу не писал логгера! Точно.
|
01.02.2011 14:05 | |
Цитата:
Все что интегрированов ide и туда сюда по всякому, в общем случае требует кучу пояснений и танцев с бубном, когда нужно узнать что там происходит у юзера.
Окно можно свернуть, а в развернутом виде менять прозрачность от 30% до 100%. Все записи можно сохранить в файл (благо 10-й плеер это позволяет), послать кому нужно и открыть. Но кроме буфера данных, мне нужно было выводить и действия которые привели к текущему состоянию буфера. Выводить в одно окно не удобно, и я добавил второе. Но возникла проблема синхронизации между окнами. Тогда я добавил связывание между двумя окнами. Листая историю в окне №2 (на скрине), в окне №3 искалась ближайшая меньшая или равная по времени запись. И наоборот. В окне, в котором запись ищется, также выводится разница во времени между записью в активном окне. |
|
Обновил(-а) iNils 01.02.2011 в 19:37
|
01.02.2011 16:51 | |
А теперь представим, что у нас лег сервер, поэтому флешка не работает, появляется окно об ошибке, тестер жмет кнопку отправить и ... лог никуда не уходит, потому что сервер лежит.
|
01.02.2011 16:53 | |
Обычно под такие нужды выделяют отдельный сервер, как мне кажется.
|
01.02.2011 17:05 | |
2iNils - в таких случаях, надобность в логах от клиента стремится к нулю)
|
01.02.2011 17:49 | |
Я говорил о багрепортах от юзеров на релизе. Для тестеров/админов есть ещё и кнопочка - посмотреть лог)
|
01.02.2011 18:47 | |
@iNils, а где скрины то?
|
01.02.2011 19:39 | |
Цитата:
@iNils, а где скрины то?
|
01.02.2011 20:57 | |
Ащащащащ.
iNils, не думаешь выложить это дело в опен-сурс? =) Я последнее время люблю брать всё готовое.) |
01.02.2011 21:45 | |
Чуть позже. Все писалось на скорую руку, надо причесать сначала.
|
02.02.2011 19:25 | |
У нас сервер для логов хрен ляжет, там единственная строчка для отправки лога по мылу.
|
02.02.2011 23:26 | |
Засмотрелся, как вы одновременно головы наклонили.
|
02.02.2011 23:29 | |
Димка, ты не в нашей песочнице, ты вон с Котярой на пару два брата-акробата
|
02.02.2011 23:31 | |
Я флипнулся. Взгляни.
|
02.02.2011 23:58 | |
Цитата:
Засмотрелся, как вы одновременно головы наклонили.
|
03.02.2011 00:05 | |
Одновременно головы это вот:
http://www.technologywithpassion.com/about-us/team/ мышью вокруг поводите. кстати прикольно все выглядит при клике по фотке. Надо для форума аватары также сделать |
03.02.2011 00:50 | |
Да у Димы тоже наклон вправо
|
03.02.2011 17:45 | |
Димка, че, Котяру бросил?
|
03.02.2011 20:15 | |
Никто меня не бросал)
|
Последние записи от dark256
- Многоуровневое меню (27.11.2015)
- О многоядерности. (21.03.2013)
- Равномерное распределение в полярных координатах. (07.12.2012)
- CS3 Crash (29.06.2011)
- Отладка по-темному (01.02.2011)