Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

E502, утечка 40 байт при работе через ethernet

Вы не вошли.

 Поиск | Регистрация | Вход 

13.03.2018 11:20:43
#1

Участник
Откуда: МО
Здесь с 01.12.2017
Сообщений: 24

E502, утечка 40 байт при работе через ethernet

Добрый день.

При работе через ethernet утекло 40 байт, вот что показал valgrind:

40 bytes in 1 blocks are definitely lost in loss record 21 of 63
  в main в main.cpp:26
  1: malloc в /mnt/valgrind-3.10.0/coregrind/m_replacemalloc/vg_replace_malloc.c:296
  2: osspec_mutex_create в /usr/local/lib/libe502api.so.1.1.12
  3: f_iface_open в /usr/local/lib/libe502api.so.1.1.12
  4: X502_OpenByDevRecord в /usr/local/lib/libx502api.so.1.1.12
  5: E502_OpenByIpAddr в /usr/local/lib/libe502api.so.1.1.12
  6: main в <a href="file:///appl/LCardE502ApiMemCheckTest/main.cpp:26" >main.cpp:26</a>

Судя по логу, теряется память в функции открытия через запись об устройстве. Специально для теста (чтобы исключить возможность утечки в нашей части ПО) был сделан чистый проект, в котором мы просто открыли устройство и тут же его закрыли. Ради эксперимента сделали также но с соединением через USB, утечки не было (по крайней мере valgrind ничего подозрительного не заметил). Проект в приложенном архиве.

Конфигурация запуска.

система Linux Debian
Distributor ID:    Debian
Description:    Debian GNU/Linux 8.10 (jessie)
Release:    8.10
Codename:    jessie

Устройство E502, подключено через ethernet (в локальную сеть, ip выделен автоматически сеткой).

Если нужна схема подключения - скажите, сделаю.

Чтобы не тратить время на написание типовой програмы, проект в приложении (проект под Qt, но можно легко переделать и под голый C++). Чтобы сменить ip, в проекте нужно строку QString ipaddr("192.168.20.68"); заменить на строку с нужным ip.

Проект: http://rgho.st/6YmW5pFbw

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

13.03.2018 20:00:27
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,291

Re: E502, утечка 40 байт при работе через ethernet

Добрый день.
Действительно была ошибка и при закрытии не освобождалась память при работе по ethenet.  Обновил библиотеки (до 1.1.13) и закинул на сборку.

14.03.2018 09:32:24
#3

Участник
Откуда: МО
Здесь с 01.12.2017
Сообщений: 24

Re: E502, утечка 40 байт при работе через ethernet

Спасибо. Версию взял, проверил - утечки больше нет.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск