Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
1

CodeGuard не срабатывает

25.04.2016, 07:48. Показов 2271. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго!
Включил в настройках проекта CodeGuard.
В проекте всего одна кнопка.

C++
1
2
3
4
5
6
7
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 TStringList * lst = new TStringList;
 lst->Add("test");
}
//---------------------------------------------------------------------------
Но при компиляции и работе CodeGuard молчит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2016, 07:48
Ответы с готовыми решениями:

CodeGuard в x64
В Builder x32 есть CodeGuard. В Builder x64 его нет. Для написания прог на x64 мне приходится...

CodeGuard в C++ Builder 6
Добрый день. Подскажите как пользоваться сабжевой штукой. Вроде как включил, галочки поставил, но...

Ошибки и логи CodeGuard
Здрасте, есть у меня ошибочка в програмке, пересмотрел весь код, не могу найти, одно наверняка...

CodeGuard и размер выделенного блока
Доброго времени суток у меня выскакивает ошибка,вернее не ошибка всё работает как надо,CodeGuard...

17
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
25.04.2016, 11:42 2
А что не так, почему он должен что то говорить? Про утечку памяти он скажет при закрытии проги.
0
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 11:43  [ТС] 3
gumi250, так и при закрытии он не чего не говорит.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
25.04.2016, 11:46 4
Цитата Сообщение от Dinkin Посмотреть сообщение
Но при компиляции
При компиляции CodeGuard никогда ничего не говорит.

Добавлено через 2 минуты
Надо запустить в режиме с Debugging.
1
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 11:51  [ТС] 5
gumi250, Понимаю.

Так норм,видит что утечка
C++
1
char *XXX = new char;
А вот так вот не норм, не видит,что утечка =)
C++
1
TStringList * lst = new TStringList;

PS, я знаю про std::auto_ptr, просто проект- сервер (для сокетов) немного пухнит при длительной работе. Начал искать утечку, CodeGuard молчит....и стало интересно,а в обще нормально ли он ловит протечки CodeGuard ....и вот чет элементарщину не видит.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
25.04.2016, 11:58 6
Цитата Сообщение от Dinkin Посмотреть сообщение
А вот так вот не норм, не видит,что утечка =)
Действительно не видит. А я ему верил
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32959 / 21276 / 8169
Регистрация: 22.10.2011
Сообщений: 36,546
Записей в блоге: 8
25.04.2016, 14:09 7
Dinkin, а "использование отладочных библиотек" включено? Если нет - то утечка от VCL-классов не будет ловиться CodeGuard-ом. К тому же, насколько я помню, нужно отключить "Use dynamic RTL" и "Runtime Packages". Тогда будет ловиться утечка. Все вышесказанное - для BCB6, но и в более новых версиях скорее всего ситуация аналогична.
1
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 14:33  [ТС] 8
Цитата Сообщение от volvo Посмотреть сообщение
"использование отладочных библиотек" включено?
Это галки в конфигурациях самого CodeGuard, что в меню Tools ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32959 / 21276 / 8169
Регистрация: 22.10.2011
Сообщений: 36,546
Записей в блоге: 8
25.04.2016, 14:39 9
Нет, это в настройках проекта:
Миниатюры
CodeGuard не срабатывает  
0
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 14:50  [ТС] 10
"Use dynamic RTL" и "Runtime Packages" отключены. Таких галок как use debug library в XE7 нет. И все равно ее находит.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32959 / 21276 / 8169
Регистрация: 22.10.2011
Сообщений: 36,546
Записей в блоге: 8
25.04.2016, 14:56 11
Цитата Сообщение от Dinkin Посмотреть сообщение
Таких галок как use debug library в XE7 нет
Зато в XE7 есть галка Use debug DCUs, в свойствах проекта -> Delphi Compiler -> Compiling.
1
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 15:03  [ТС] 12
volvo, Спасибо, буду знать,но к сожалению результат тот же.
На виртуальных машинах проверил "Xe8 и Xe 10", нигде не находит

C++
1
TStringList * lst  = new TStringList;
может оно и не считается утечкой
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32959 / 21276 / 8169
Регистрация: 22.10.2011
Сообщений: 36,546
Записей в блоге: 8
25.04.2016, 15:32 13
Оно считается утечкой, и в старых версиях Билдера все нормально срабатывает. Но Бракоделы же не могут оставить нормально работающий функционал, им же надо новых глюков досыпать. Чтобы поправить это для 6-го Билдера, понадобилось чуть больше 10 лет. Жди, может, через 10 лет и для XE7 поправят.
1
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 15:36  [ТС] 14
volvo, Они отписали у себя на сайте,что более не поддерживают старые версии . Даже Сиэтл старый, к нему больше не будет патчей (а так на дальнейшее максимум версия+патч, в редких случаях два) .
0
volvo
25.04.2016, 16:16
  #15

Не по теме:

"Ничего личного, просто бизнес" (С)

0
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 22:41  [ТС] 16
volvo, Сделал в проекте с с сервером все по вашим рекомендациям...что то нашел CodeGuard, только непонятно на что он вообще указывает (ссылается на место в System.pas).
Миниатюры
CodeGuard не срабатывает  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32959 / 21276 / 8169
Регистрация: 22.10.2011
Сообщений: 36,546
Записей в блоге: 8
25.04.2016, 23:03 17
Не-не-не. Это "ложное срабатывание", оно у меня в 6-ом Билдере (на других проверить сейчас не могу, нет под рукой) тоже присутствует. Кроме этого еще должно быть. Вот чего мне cgl-файл показывает:
Кликните здесь для просмотра всего текста
Error 00001. 0x300010 (Thread 0x043C):
Resource leak: The memory block (0x29F68F0) was never freed

The memory block (0x029F68F0) [size: 48 bytes] was allocated with SysGetMem
Call Tree:
0x0042AFEF(=Project1.exe:0x01:029FEF) system.pas#2450
0x0040374D(=Project1.exe:0x01:00274D) D:\BCB6\grid_combo\Unit1.cpp#250
0x00477528(=Project1.exe:0x01:076528) Controls.pas#4621
0x0043BE50(=Project1.exe:0x01:03AE50) StdCtrls.pas#3347
0x0043BFB7(=Project1.exe:0x01:03AFB7) StdCtrls.pas#3399
0x004772FA(=Project1.exe:0x01:0762FA) Controls.pas#4561

------------------------------------------
Error 00002. 0x300010 (Thread 0x043C):
Resource leak: The memory block (0x29F8C4C) was never freed

The memory block (0x029F8C4C) [size: 32 bytes] was allocated with SysGetMem
Call Tree:
0x0042B069(=Project1.exe:0x01:02A069) system.pas#2560
0x0040EA09(=Project1.exe:0x01:00DA09) classes.pas#4616
0x0040EB1C(=Project1.exe:0x01:00DB1C) classes.pas#4641
0x0040E616(=Project1.exe:0x01:00D616) classes.pas#4500
0x0040E59A(=Project1.exe:0x01:00D59A) classes.pas#4487
0x0040377A(=Project1.exe:0x01:00277A) D:\BCB6\grid_combo\Unit1.cpp#251

------------------------------------------
Error 00003. 0x300010 (Thread 0x043C):
Resource leak: The memory block (0x29F8C38) was never freed

The memory block (0x029F8C38) [size: 14 bytes] was allocated with SysGetMem
Call Tree:
0x0042AFEF(=Project1.exe:0x01:029FEF) system.pas#2450
0x00403763(=Project1.exe:0x01:002763) D:\BCB6\grid_combo\Unit1.cpp#251
0x00477528(=Project1.exe:0x01:076528) Controls.pas#4621
0x0043BE50(=Project1.exe:0x01:03AE50) StdCtrls.pas#3347
0x0043BFB7(=Project1.exe:0x01:03AFB7) StdCtrls.pas#3399
0x004772FA(=Project1.exe:0x01:0762FA) Controls.pas#4561

------------------------------------------
Error 00004. 0x300010 (Thread 0x043C):
Resource leak: The memory block (0x29F1604) was never freed

The memory block (0x029F1604) [size: 36 bytes] was allocated with SysGetMem
Call Tree:
0x0042AFEF(=Project1.exe:0x01:029FEF) system.pas#2450
0x0042FBD6(=Project1.exe:0x01:02EBD6) WinHelpViewer.pas#655
0x0048B86D(=Project1.exe:0x01:08A86D)
0x0048BA43(=Project1.exe:0x01:08AA43)

------------------------------------------
Functions called:
fflush (4 times)
delete (11 times)
free (7 times)
memset (1 times)
new (11 times)
SysReallocMem (15 times)
SysFreeMem (749 times)
SysGetMem (753 times)
lstrlenA (1 times)
lstrcpynA (4 times)
calloc (1 times)
strlen (73 times)
realloc (1 times)
strdup (1 times)
malloc (4 times)
memcpy (2 times)
Resource types used:
object (11 allocs, 11 max)
memory block (760 allocs, 433 max)
Modules used:
00400000 04/25/2016 14:17:08
D:\BCB6\grid_combo\Project1.exe
==========================================
250 и 251 строка у меня в проекте - соответственно
C++
250
251
 TStringList * lst = new TStringList;
 lst->Add("test");
1
742 / 530 / 132
Регистрация: 31.05.2013
Сообщений: 3,019
Записей в блоге: 3
25.04.2016, 23:08  [ТС] 18
Спасибо) На XE7и выше он больше не чего не показывает)
0
25.04.2016, 23:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2016, 23:08
Помогаю со студенческими работами здесь

Включить CodeGuard и найти Access Vioaltion
Здравствуйте. О себе:) : Win7, C++ Builder XE3, AsyncPro. Столкнулся со следующей проблемой:...

CodeGuard ругается при записи в файл
Здравствуйте! Решил проверить код записи массива в файл, подключив CodeGuard: ofstream...

Ошибка при проверке программы через CodeGuard
Есть программа, которая работает с потоками. Все в принципе работает правильно, но при проверке...

Ошибка "Nonshared DATA segment required" при включении CodeGuard
При включении CodeGuard возникает ошибка "Nonshared DATA segment required". На форуме и в интернете...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru