| debugmux : Эльфостроение : Форум | 
| Страница 1 из 3: [1] 2 3 » | 
| 
 | 01.07.09, 09:15 | 
| Эта хитрая мулька может помочь в отладке эльфов. Ну и не только эльфов  Запускаете логгер, подключаете телефон (хоть кабелем, хоть по bluetooth), прога определяет его, открываете print server channel. Откроется окно лога, куда будет сыпаться отладочный вывод. Параллельно логи будут сохраняться в текстовые файлы. Ну а конкретно написанию эльфов прога может помочь, если в эльфе в нужных и не очень местах расставить вызов функции debug_printf. Вот пример, который я публиковал на другом сайте. В нём кроме собственно вызова debug_printf используется простенький класс, использование которого позволяет контролировать вход (если объект создаётся в начале функции) и выход из функции. И ещё используются макросы, автоматически подсовывающие в вывод имена функций (можно и номера строк выводить, и дату, и вообще см. справку) Код:  #include "..\\include\Lib_Clara.h" #include "..\\include\Dir.h" class CDbgPrint { char* fl; char* fn; public: CDbgPrint(char* file,char* func){debug_printf("\nfunction enter: %s/%s\n",fl=file,fn=func);} ~CDbgPrint(){debug_printf("\nfunction leave: %s/%s\n",fl,fn);} }; #ifdef NDEBUG #define FUNCTION #else #define FUNCTION CDbgPrint __function((char*)__FILE__,(char*)__FUNCTION__); #endif u16 timer; // ID таймера int lamp=0; // текущая яркость лампы BOOK * HWBook; int TerminateElf(void * ,BOOK* book) { FUNCTION FreeBook(book); return(1); } typedef struct { BOOK * book; }MSG; int ShowAuthorInfo(void *mess ,BOOK* book) { FUNCTION MSG * msg = (MSG*)mess; MessageBox(0x6fFFFFFF,STR("Hello Wordl!\n\nExample elf.."),0, 1 ,5000,msg->book); return(1); } const PAGE_MSG HW_PageEvents[]@ "DYN_PAGE" ={ ELF_TERMINATE_EVENT , TerminateElf, ELF_SHOW_INFO_EVENT , ShowAuthorInfo, 0,0 }; PAGE_DESC base_page ={"HW_BasePage",0,HW_PageEvents}; void elf_exit(void) { kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr()); } void onTimer (u16 unk , void * data) { FUNCTION { // перезапускаем таймер Timer_ReSet(&timer,500,onTimer,0); // переключаем лампу SetLampLevel(lamp^=0x10); } } void onCloseHWBook(BOOK * book) { FUNCTION if (book) { Timer_Kill(&timer); StatusIndication_ShowNotes(0x6FFFFFFF); SetLampLevel(0); SUBPROC(elf_exit); } } BOOK * CreateHWBook() { FUNCTION HWBook= new BOOK; CreateBook(HWBook,onCloseHWBook,&base_page,"Example",-1,0); return(HWBook); } int main (void) { FUNCTION CreateHWBook(); // выводим текст в "заметки" на StandBy StatusIndication_ShowNotes(STR("Hello World!")); // запускаем таймер на 0.5 сек. timer=Timer_Set(500,onTimer,0); return(0); } Ну и собственно сам вывод: показать:  Да, и говорим спасибо Simri  Добавлено 1.7.09 09:35 а вот пример того, что без сервисного кабеля не увидеть. это то, что попадает в лог при серьёзных ошибках. в моём случае кривой патч был причиной ребутов при запуске одного из жава-приложений показать:  | |
| 
 | 12.08.10, 20:09 | 
| den_po, можно как-то заставить его читать лог с самого начала включения телефона? Или только после полного включения? | |
| 
 | 12.08.10, 20:23 | 
| Pavlus, можно, сделай себе СЕРВИСНЫЙ КАБЕЛЬ! | |
| 
 | 14.05.11, 16:32 | 
| 4. В окне настроек следует поставить галочку напротив пункта Sony Ericsson Device USB WMC Data Modem Где это я не вижу,как подключать телефон,в каком режиме? [ Редактировано vadbga в 14.5.11 16:33 ] | |
| 
 | 14.05.11, 16:42 | 
| vadbga, в режиме "телефон". У меня он автоматически телефон определил | |
| 
 | 14.05.11, 17:35 | 
| toha257, режим телефон! Ноль реакции,только комп 2 гудка произнёс и всё! | |
| 
 | 14.05.11, 22:10 | 
| vadbga, а драйвера (не прошивочные) стоят? | |
| 
 | 15.05.11, 05:03 | 
| toha257, The Gordons Gate driver Какие ещё надо? | |
| 
 | 15.05.11, 13:21 | 
| vadbga, нужны драйвера для обычного usb интерфейса (на диске с по должны быть, или скачай с оф. сайта се) | |
| 
 | 31.10.11, 23:05 | 
| Если я не ошибаюсь, эльф Save_CRD_Data сохраняет какой-то отчёт при крахе системы. Но я не понимаю его формат   У меня есть 2 окна с заголовком "print server channel". Логи в них разные. В чём разница? Можно ли "научить" программу отсеивать "лишние" сообщения? [ Редактировано IDOL1234 в 31.10.11 22:09 ] | |
| Страница 1 из 3: [1] 2 3 » | 
| URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4093 © 2005-2018 mobilefree.justdanpo.ru |