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

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

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 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
Сообщений: 3279
Репутация: 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; 31 hits) Скачать файл


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

Joker XT


VIP Developer


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





 
  #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
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары



На сайте!


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

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




promt is better than google translate

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 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
Сообщений: 3279
Репутация: 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
Сообщений: 3279
Репутация: 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.03 секунд | 10 Запросов | HTML: 41.56 КБ -