LINUX.ORG.RU

Valgrind 3.7.0

 , , , s390x, ,


0

3

Valgrind — это инструмент, позволяющий находить в программах недостатки, такие как ошибки при работе с памятью, неправильное разделение потоков, неинициализированные переменные и прочее. В новой версии:

  • Поддержка Linux на архитектуре IBM z/Architecture (s390x).
  • Начальная поддержка MacOSX 10.7 и XCode 4.
  • Начальная поддержка ARM/Android.
  • Поддержка IBM Power ISA 2.06 (Power7).
  • Общее улучшение поддержки ARM/Linux и соответственно ARM/Android.
  • Дальнейшее улучшение поддержки инструкций SSE4.2 в 64-битном режиме.
  • Удалена поддержка AIX5.
  • В Helgrind улучшена производительность и в общем снижено потребление памяти.
  • В DRD появилась возможность вывода в XML, улучшена поддержка Darwin.
  • Область работы exp-ptrcheck уменьшена ради сокращения потребления ресурсов (удалённый функционал уже присутствует в лучшем качестве в Memcheck)
  • В Valgrind встроен GDB-сервер. То есть теперь можно контролировать работу Valgrind'а из GDB.
  • Проверена возможность сборки Valgrind с помощью Clang-2.9.
  • Множество других улучшений и исправлений ошибок.

Официальный сайт

>>> Подробности

★★★

Проверено: maxcom ()
Последнее исправление: adriano32 (всего исправлений: 1)

Ответ на: комментарий от gag

Это «средство» ничего не дает для не совсем примитивных случаев.

JackyTreehorn
()
Ответ на: комментарий от Lordwind

Неплохо... а есть нечто подобное под оффтоп?

Старый добрый Borland C++ Builder из коробки умеет проверять доступ к памяти (одна галочка в настройках проекта).

Pavval ★★★★★
()
Ответ на: комментарий от Napilnik

Что-то его на 10 лямах клинит, больше не показывает. Надеюсь, новая версия осилит 20КК.

Ты еще эти 10 миллионов не исправил!!!111

Pavval ★★★★★
()
Ответ на: комментарий от anonymous

Дык 10 лямов - это видимо просто константа в сорцах. Найди и замени на 20:) Скорее всего заработает.

Pavval ★★★★★
()

Ждём запиливания интеграции с Clang'ом.

tmplsr
()
Ответ на: комментарий от Pavval

>константа в сорцах. Найди и замени на 20:) Скорее всего заработает.
Только возьми 2ю, скомпилированную версию — чтобы выловить после этого сегфолты и прочих блох.

tmplsr
()
Ответ на: комментарий от Pavval

>Ты еще эти 10 миллионов не исправил!!!111

А что там исправлять, если в коде нет такого количества операторов:) Где-то идёт генерация ошибок и если-бы они были серьёзными, это стало бы заметно. Имеются другие баги, в исправлении которых данный отладчик не поможет. Например, потеря окном фокуса - окно активное но события от мыши и клавы не ловит, их вообще кроме Control+Alt+F2 никто не ловит пока окно не закроешь. Но это что-то системное, в следующих версиях продуктов может само пропасть как и появилось.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Но это что-то системное, в следующих версиях продуктов может само пропасть как и появилось.

Классный подход.

Pavval ★★★★★
()
Ответ на: комментарий от Napilnik

> Где-то идёт генерация ошибок и если-бы они были серьёзными, это стало бы заметно.

Тут вы сильно заблуждаетесь. Рано или поздно эти «не настолько серьёзные» ошибки приведут к Segmentation Fault.
Как я уже писал выше, Linux очень мягко относится к нарушениям сегментации, не проверяет точно попадает ли ваш запрос в область, которую запрашивала программа по-байтно. Если ваш запрос попадает в выделенную страницу памяти - то всё вроде бы хорошо.
Тот же код скомпилированный под Windows наверняка упадёт очень скоро.

unDEFER ★★★★★
()
Ответ на: комментарий от Napilnik

> Но это что-то системное, в следующих версиях продуктов может само пропасть как и появилось.

Ты - админ?

Neksys ★★★
()
Ответ на: комментарий от JackyTreehorn

> Из платного - purify, insure++, intel че-то там inspector, boundschecker. Все жутко дорогое и в большинстве своем еще и УГ.

Purify c интеграцией в MSVC гораздо удобнее, чем Valgrind+GDB в консоли.

kamre ★★★
()
Ответ на: комментарий от Neksys

>Ты - админ?

Было дело. С тех пор сохранилось знание о том, что все баги и кривости системы не исправить, со многими из них нужно просто научиться жить и минимизировать потери.

Napilnik ★★★★★
()
Ответ на: комментарий от unDEFER

>Тут вы сильно заблуждаетесь. Рано или поздно эти «не настолько серьёзные» ошибки приведут к Segmentation Fault.

Это «рано или поздно» если и наступает, то при закрытии программы, когда все данные уже сохранены, все потоки кроме главного, который ничего на тот момент уже не делает, благополучно завершились.

Тот же код скомпилированный под Windows наверняка упадёт очень скоро.

Если будет быстро и часто падать, то расставив в коде генераторы сообщений можно быстро обнаружить, на какой операции что-то дохнет. А так как лично я свой код знаю, то должен с этим справиться, ну а если пользователь Х не сможет сам портировать ПО на винду, то пусть обращается к автору. Это опенсорс: если сразу запилить все-все нужные фичи, то автор становится никому не нужен. Есть ещё один момент. Мне не всё нравится в тех библиотеках, которыми я пользуюсь и приходится изобретать костыли чтобы обойти ограничения, которые похоже больше никого не волнуют. У меня ограниченное количество сил и времени, поэтому не стоит браться сразу за все непрофильные задачи.

Napilnik ★★★★★
()
Ответ на: комментарий от unDEFER

В Windows возможны варианты. Быстрее всего упадет программа, для которой включена проверка кучи (pageheap).

JackyTreehorn
()
Ответ на: комментарий от kamre

Мне так и не удалось его запустить (вешал всю винду), к тому же, мне нужна была поддержка vc6 :)

JackyTreehorn
()
Ответ на: комментарий от Napilnik

Наивность - чистота души (с)

Я как-то ловил косяк: падало регулярно и постоянно, только причина была в другом потоке/процессе.

JackyTreehorn
()
Ответ на: комментарий от Napilnik

Ну, как хотите, только кроме всего прочего эти невинные ошибки также, наверняка, приводят к искажениям результатов выполнения вашей программы, которые могут быть не заметными на первый взгляд, но если разобраться, то они могут быть абсолютно неверными.
Иногда даже удивляешься «как оно вообще работала с такими багами»...

unDEFER ★★★★★
()
Ответ на: комментарий от terminator

>> Valgrind — это инструмент, позволяющий находить недостатки в программах

То есть, ЛОР — это всего-лишь веб-интерфейс к Valgrind'у?

В ЦИТАТНИК!!!

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Ну вот, оно, оказывается, уже в биореакторе. А жаль.

hobbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.