Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   как настроить FDTracer для FD на Vista (http://www.flasher.ru/forum/showthread.php?t=116602)

Волгоградец 05.10.2008 14:07

как настроить FDTracer для FD на Vista
 
Привет.
Вобщем на ХР проблем не было. Поставил FD 3 beta 9 на Висту, этот плагин не работает.
Создал документ здесь:
Цитата:

C:\Users\{user}\AppData\Roaming\Macromedia\Flash Player\Logs\flashlog.txt
и здесь:
Цитата:

C:\Users\{user}\mm.cfg
Путь прописал в свойствах плагина.
Во flashlog ничего не записывается. Кто сталкивался, озовитесь.

P.S.: на форуме FD есть ссылка на плагин fdb. Этот плагин помимо всего прочего добавляет trace панель - на скринах видел. У меня почему-то нет этой панели.

iNils 05.10.2008 14:09

А в чем удобство FDTracer? Бесполезный ведь плагин.

Волгоградец 05.10.2008 14:28

Просто привычка. К меня косяк какой-то был и в output не выводил трейс. Я поставил FDTracer. Так вот и полюбил его.
Кстати, iNils, я может не в теме, при работе с мтаском можно было выводить трейс в панель results (ты подробную инструкцию давал по настройке) - и указывались класс и строка ошибки. В AS3 этого нет, ведь так?

iNils 05.10.2008 14:45

Нет. Но сделать можно, я уже накидал себе плагин для FD, который выводит трейс в мою панель с помощью кастомного класса + вернул возможность перехода с трейса на строку и класс, которые этот трейс вызвал. Как доведу до ума, выложу.
Сейчас советую использовать внешний трейсер (очень хороший) alcon

Волгоградец 05.10.2008 15:07

О, сейчас попробую. Спасибо.

Волгоградец 05.10.2008 23:24

Поставил alcon. Работает. Но перед каждым трейсом выводится тэг [info]. Подозреваю вместо него должны быть имя класса, номер строки и т.д. Может надо настроить?

iNils 06.10.2008 00:01

Нет. info это уровень важности сообщения: debug, info, warn, error, fatal.
Для вывода строки и класса, надо написать
Код:

try {
        var error:Error = new Error (msg);
        var str:String = error.getStackTrace ();
        ...
        потом парсить
} catch (error:Error) {

}

и получить строку с цепочкой методов, которые вызвали трейс и распарсить ее.
Но должен стоять дебаг плеер и включен режим strict.

Волгоградец 06.10.2008 10:32

Не понял. Это же будет работать только в случае error. Т.е. в случае просто info мне никак эти данные не вытащить?

iNils 06.10.2008 10:45

И в случаи error это тоже не будет работать. Все эти debug, info, warn, error, fatal чистой воды условности задаваемой пользователем. Например, если xml не загрузился, то выводим сообщения в режиме error, а если получаем для деления знаменатель 0, то fatal и тд.
Поэтому надо создать свой класс, куда кидать текст сообщения, потом вызывать конструкцию выше и распарсив передавать куда надо.

Волгоградец 06.10.2008 11:53

Не, iNils, понятно, что само передаваться ничего не будет. Вопрос в том, что я смогу получить имя класса и строку только в случае если сработает какой-нибудь exeption ("например xml не загрузился или получаем для деления знаменатель 0"). А без срабатывания exeption как быть, например: есть у меня 100 классов, в каждом переменная a трейсит что-нибудь (например при вызове конструктора). Что мне передавать и соответственно что парсить, чтобы узнать какому классу принадлежит данный трейс и в какой строчке?

iNils 06.10.2008 12:56

Вложений: 1
Цитата:

Сообщение от Волгоградец (Сообщение 768352)
Что мне передавать и соответственно что парсить, чтобы узнать какому классу принадлежит данный трейс и в какой строчке?

В архиве сырой плагин для FD и класс для работы с ним.
Импортируем в свои классы класс ru.inils.utils.Debugger и пишем например:
Код:

Debugger.trace ('пример', Debugger.LEVEL_WARN);
Нужен дебаг плеер и дебаг режим компиляции.

Волгоградец 06.10.2008 14:47

Шикарно! Работает! Только не могу понять, почему возвращается именно номер строки, откуда был вызван трейс (то что нужно), а не номер строки где был создан Error?

iNils 06.10.2008 15:06

Потому, что getStackTrace () возвращает нам всю цепочку методов, породивших вызов трейса, в том числе и метод Debugger.traceOutput, но я то о нем знаю, поэтому в этой цепочке возращаюсь назад на нужное число шагов и получаю строку в которой был вызван Debugger.trace

Волгоградец 06.10.2008 15:17

Все, понял. Просто про метод getStackTrace () в хэлпе кот наплакал.
iNils, ты крут. Я твой класс возьму за основу (если конечно не против) и пока просто буду в панель Output выводить.

iNils 06.10.2008 15:20

Туда и так выводится все, но в неудобоваримом виде, а чем iTrace не подходит?

Волгоградец 06.10.2008 15:54

У меня в output выводится только значение трейса - без указания из какого он класса и т.д.
А что, iTrace можно подключать? Я так понял, что пока он не рабочий. Я только класс проверял.

Upd.: подключил. Вот это вещь!!! Я именно это и искал. Спасибо, iNils. Всем советую.

iNils 06.10.2008 16:07

Он рабочий, но сырой. Баги с подсветкой уровня трейса в FD3 beta9, хотя в beta8 все работает, что-то они там намутили непонятное.

Волгоградец 06.10.2008 16:20

Насчет 9 не знаю - на работе стоит 7 бета - все работает идеально. И подсветка и переход на строку при щелчке. Приду домой на девятой бете попробую. Отличная работа!

P.S.: И еще заметил, что выходные данные дублируются в Output панель.

iNils 06.10.2008 16:24

А в Output все все все выводится, поэтому он у меня за панелью Results, в которую ошибки выводятся, а трейсы идут в iTrace.

Волгоградец 06.10.2008 22:45

Цитата:

Сообщение от iNils (Сообщение 768396)
Он рабочий, но сырой. Баги с подсветкой уровня трейса в FD3 beta9, хотя в beta8 все работает, что-то они там намутили непонятное.

Проверил. У меня работает и на девятой бете. Круто.

Kuruki 25.10.2008 22:14

:) Что-то у меня никуда ничто не выводит... :( Ни в Output, ни в Results, ни в iTrace. Режим дебаг поставил, дебаг плеер для уверенности еще раз скачал и установил. Класс для компила указал.
Flash Ide нормально трейсы выводит (которые Debugger'ом вывожу), а с FD никак не разберусь. Что может быть?

iNils 26.10.2008 14:47

А пример из аттача смотрели? И проект на AS3? :)

Kuruki 26.10.2008 16:29

Вот такой код
Код:

package 
{
        import flash.display.Sprite;
        import flash.text.TextField;
        import ru.inils.utils.Debugger;
        public class Main extends Sprite
        {
               
                public function Main()
                {
                        Debugger.trace('hello, world', Debugger.LEVEL_INFO);
                       
                        var field:TextField = new TextField();
                        field.text = 'hello, world';
                        addChild(field);
                }
               
        }
       
}

Текстовое поле создается, но трэйса нет. Может посмотрите, будет ли у вас работать этот проект?

iNils 26.10.2008 20:16

Работает. Смотрите настройки других модулей.

Kuruki 31.10.2008 15:18

Переустановил FDevelop с настройками. На одном компьютере трэйс заработал, на другом - нет..( На обоих установлены одинаковые java-машины, net, плеер и т.д. Видимо какая-то несовместимость c FD, помнится у меня одно время и с компиляцией на том другом компе проблема была.
А iTrace - классная вещь, спасибо!


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

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