Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
TrackIDentify
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Опросы
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

deleaker : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  deleaker
На печать 
Правила 
Страница 1 из 2: [1] 2 »

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #1 [01.07.09, 09:34] deleaker   

 
в общем-то опубликована эта штука давно (в составе mcse), но так и не доделана. и знают о ней не все.

деликер - средство обнаружения утечек ресурсов (в основном памяти). после завершения работы эльфа в прочем на телефоне создаётся файл memory.txt, в котором будут перечислены утечки.

главных файлов два - mem.cpp и mem.h, их и нужно добавлять в свои проекты.
чтоб добавить деликер в свой проект, нужно удалить из проекта файл _cpp2.cpp, добавить mem.cpp, и в каждом включаемом .c или .cpp первой строчкой инклюдить mem.h.
в мэйне первым же делом нужно вызывать trace_init(), а в elf_exit() нужно вызывать trace_done()
.
релизный конфиг должен содержать константу NDEBUG. в релизном конфиге эльф работает как и без деликера.
для наглядности в приложенном эльфе-примере выделяются три блока памяти, которые при завершении его работы не удаляются.
ещё раз обращаю внимание, в релизном конфиге эльф работает как и без деликера, так что для проверки собирайте debug версию.
ну и реализован учёт очень небольшого количества функций, хотя самые главные есть. если кто предложит свои варианты для остальных функций, будем рады.




promt is better than google translate
Спасибо сказали: Ugolovnik, SlaveMaster, zapret007, -Sanek-, arban, traduz

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #2 [09.08.09, 10:13] Re: deleaker   

 
переделанная версия.
для примера на этот раз использован букман.

p.s.: обидно, кто-то вроде пользуется, а расширить список поддерживаемых функций всем лень.




promt is better than google translate

BigHercules


Elfmaker


Регистрация: 19.1.07
Сообщений: 246
Репутация: 1925
Откуда: Воронеж




 
  #3 [26.08.09, 19:29] Re: deleaker   

 
Добавил ImageID_Get, ImageID_GetIndirect и ImageID_Free.


Добавлено 26.8.09 19:36

Пытался добавить CreateYesNoQuestionVA, но не получилось. :oops:

Как внутри функции с переменным числом аргументов вызвать другую функцию и ей передать эти аргументы?

Делал так:
GUI * __deleaker_CreateYesNoQuestionVA(char* __file__, int __line__, int zero, ...)
{
va_list _ap;
va_start(_ap, zero);
GUI * ret = __original_CreateYesNoQuestionVA(zero, _ap);
va_end(_ap);
trace_alloc(trace_memory, (void*)ret, __file__, __line__);
return ret;
}

Но ничего не вышло, телефон ушел в ребут. :-(



Прикрепленный к сообщению файл:

mem2.zip mem2.zip (9.55 kb; 30 hits) Скачать файл


SЕ K790i R8BF003 CID52
Спасибо сказали: -Sanek-, ploik

Joker XT


VIP Developer


Регистрация: 5.8.06
Сообщений: 1292
Репутация: 7582





 
  #4 [26.08.09, 20:45] Re: deleaker   

 
BigHercules, вроде так
Код: 
wchar_t * CreateFD (FILE_DIALOG* fd,
                    BOOK * book,
                    int flags,
                    wchar_t * header,
                    wchar_t * filters,
                    ...  // folders list
                      )
{
  int args;
  wchar_t * res;
  va_list ap;
  va_start(ap, filters);
  args = va_arg(ap, int);
  res=CreateFileDialog (book, flags, header, filters,&args);
  va_end(ap);
  return(res);
}




SE C901 [R1GA028]

BigHercules


Elfmaker


Регистрация: 19.1.07
Сообщений: 246
Репутация: 1925
Откуда: Воронеж




 
  #5 [26.08.09, 22:35] Re: deleaker   

 
Joker XT пишет:
BigHercules, вроде так
...

Я наверное немного неправильно написал. Внутри функции с переменным количеством аргументов мне нужно вызвать также функцию с переменным количеством входных аргументов. Т.е. прототип функции __original_CreateYesNoQuestionVA в приведенном мною выше кусочке кода такой:
GUI *__original_CreateYesNoQuestionVA(int zero, ...);




SЕ K790i R8BF003 CID52

KreN


VIP Developer


Регистрация: 5.12.07
Сообщений: 44
Репутация: 1070
Откуда: Ростов-на-Дону




 
  #6 [27.08.09, 01:07] Re: deleaker   

 
Joker XT писал:
BigHercules, вроде так

Не, тут не правильно (поэтому и по два раза добавляло файлы)

BigHercules, практически невозможно так сделать, ты даешь функции указатель на массив аргументов, а не сам массив. А чтобы дать сам массив надо знать его размер (количество аргументов), но до выполнения функции его узнать нельзя.



den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #7 [27.08.09, 01:41] Re: deleaker   

 
можно внутри функции самим формировать стек и вызывать. но без асемблерных вставок наверное не обойтись.




promt is better than google translate

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #8 [05.09.09, 20:49] Re: deleaker   

 
чуть обновил. положил ещё и шаблоны с php-скриптом для генерации.




promt is better than google translate
Спасибо сказали: MaPkiZzz, 273308715

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #9 [24.03.10, 10:23] Re: deleaker   

 
обновил деликера. теперь и варарговые функции. лежит на свн.
кстати, вместо того, чтоб инклюдить mem2.h в каждом .c/.cpp, можно сделать проще



Прикрепленный к сообщению файл:
include.PNG


promt is better than google translate

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3278
Репутация: 10763
Откуда: Чебоксары




 
  #10 [05.03.11, 01:57] Re: deleaker   

 
неучтёнными из >650 функций остались 80 (не все из них могут привести к утечкам). развивается, хотя и медленно (как и всё, что я делаю :lol: )




promt is better than google translate
Спасибо сказали: nagmet, Rc
Страница 1 из 2: [1] 2 »



  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.14 секунд | 11 Запросов | HTML: 41.88 КБ -