The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз Valgrind 3.13.0, инструментария для выявления проблем при работе с памятью

19.06.2017 09:58

Доступен релиз Valgrind 3.13.0, инструментария для отладки работы с памятью, обнаружения утечек памяти и профилирования. Работа Valgrind поддерживается для платформ Linux (X86, AMD64 ARM32, ARM64, PPC32, PPC64BE, PPC64LE, S390X, MIPS32, MIPS64), Android (ARM, ARM64, MIPS32, X86),Solaris (X86, AMD64) и macOS 10.12 (AMD64).

В новой версии:

  • Проведена работа по обеспечению отладки крупных приложений, потребляющих очень много памяти. Расширен размер кэша. Максимальное число секторов увеличено с 24 до 48, а значение по умолчанию с 16 до 32. Общий размер памяти, который может использовать Valgrind увеличен с 64 до 128 Гб, т.е. теперь возможна отладка приложений, которым выделено до 60 Гб памяти. Адрес загрузки изменён с 0x3800'0000 на 0x5800'0000, что позволяет загружать крупные исполняемые файлы, размером до 1.2 Гб;
  • Добавлена поддержка нового представления трассировок стека - "XTree", при котором раскладка памяти оформляется в виде дерева из трассировок стека и привязанных к ним данных. Поддержка XTree добавлена в утилиты Memcheck, Helgrind и Massif, и может применяться для оценки заполнения кучи в приложении. Для управления формированием отчёта добавлены опции "--xtree-memory=none|allocs|full" и "--xtree-memory-file=file". Отчёт также может быть сгенерирован на лету при помощи команды мониторинга xtmemory в gdbserver. XTree может быть сохранён в двух форматах - callgrind (поддерживается в Memcheck) и massif, которые поддерживаются типовыми инструментами визуализации и анализа, такими как callgrind_annotate, KCachegrind и ms_print;
  • Обновлён C++ demangler, декодировщик идентификаторов C++ ABI в оригинальный набор исходных идентификаторов кода C++. Добавлена поддержка декодирования ABI-идентификаторов для языка Rust;
  • Устранена утечка памяти при чтении сжатых файлов debuginfo, которая мешала использованию Valgrind с данными debuginfo, созданными в gcc 7.0 при использовании флага "-gz";
  • Добавлена поддержка набора инструкций ISA 3.0B для 64-разрядных процессоров POWER (ppc64);
  • Для архитектур amd64 и x86 добавлена поддержка CET-префиксов (Control-flow Enforcement Technology) и решены проблемы со сбоем JIT при обработке длинных блоков кода AVX2;
  • Для систем arm32 реализованы недостающие инструкции ARMv8;
  • Для архитектур arm64, mips64 и mips32 представлена альтернативная реализация инструкций LL (Load-Linked) и SC (Store-Conditional), активируемая при помощи опции "--sim-hints=fallback-llsc" и решающая проблемы с зависаниями в некоторых ситуациях, при использовании реализации, строго соответствующей спецификации LL/SS;
  • Улучшена поддержка платформы macOS 10.12;
  • На платформе Linux улучшена обработка системного вызова clone в режиме CLONE_VFORK;
  • Удалён порт TileGX/Linux, который остался без поддержки и на практике не востребован;
  • В Memcheck сокращено число ложных срабатываний при запуске оптимизированного кода, сгенерированного в Clang/LLVM. Добавлена поддержка трассировок xtree (опция "--xtree-memory" и команда 'xtmemory') и рализована опция 'leak_check xtleak' для создания отчёта об утечках в формате xtree;
  • В Massif добавлена поддержка трассировок xtree (опция "--xtree-memory" и команда 'xtmemory') и значительно сокращено потребления памяти и процессорных ресурсов;
  • В Helgrind добавлена поддержка трассировок xtree (опция "--xtree-memory" и команда 'xtmemory') и возможность обработки клиентских запросов VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN, востребованных для программ на языке Ada, скомпилированных компилятором gnat.


  1. Главная ссылка к новости (https://sourceforge.net/p/valg...)
  2. OpenNews: Выпуск отладчика GDB 8.0
  3. OpenNews: Выпуск системы динамической отладки SystemTap 3.1
  4. OpenNews: Выпуск платформы динамической трассировки приложений Frida и отладчика CryptoShark
  5. OpenNews: Релиз Valgrind 3.13.0, инструментария для выявления проблем при работе с памятью
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46721-valgrind
Ключевые слова: valgrind, memory, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (13) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 10:37, 19/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    >>Valgrind
    >Устранена утечка памяти

    Забавно:)

     
     
  • 2.2, Comdiv (ok), 10:58, 19/06/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я так понимаю, valgrind не пригоден для тестирования самого себя.
     
     
  • 3.3, llolik (ok), 11:53, 19/06/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Достаточно редкий случай, который не проверили (gcc7 + внешняя сжатая debuginfo) и который проявился только с недавним релизом gcc7.
     
  • 3.10, Аноним (-), 11:16, 21/06/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ...а с помощью двух valgrind'ов можно протестить вообще всё! ©
     
  • 3.11, я (?), 13:06, 23/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Я так понимаю, valgrind не пригоден для тестирования самого себя.

    Пригоден. Для этого в нем есть специальная поддержка.

     

  • 1.4, Олег (??), 15:54, 19/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно а проблемы с AMD FX процессорами исправили уже?

    vex amd64->IR: unhandled instruction bytes: 0x8F 0xEA 0xF8 0x10 0xCA 0x3 0x1D 0x0 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0

     
     
     
    Часть нити удалена модератором

  • 3.6, Аноним (-), 21:44, 19/06/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    AMD уже поняло что все эти независимые аффторы компиляторов типа GCC жирно проплаченны Intel-ом,
    потому на базе форка LLVM+CLang пилят свой оптимизирующий под AMD компилятор
    (правда тоже подонковски - только под самые последние свои модели ЦПУ, но может и на ранних будет профит кто знает) - AOCC{AMD Optimizing C,C++ Compiler}
     

  • 1.7, Аноним (-), 01:34, 20/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Лично для меня valgrind помер в тот момент, когда перестал работать без отладочной информации. И ладно бы он требовал ее только для бинарника, но нет же - она требуется для всех используемых бинарником библиотек, начиная от libc и заканчивая иксовыми. Пересобирать всю систему со splitdebug? Нет, спасибо. Могли бы хоть ключик оставить, что ли...
     
     
  • 2.8, A.Stahl (ok), 01:51, 20/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >ля меня valgrind помер в тот момент

    А что родилось?
    Альтернативы-то нет...
    Да и что плохого, если он стал просить меньше (сам я валгриндом пользуюсь пару раз перед релизом. Не чаще. Я на плюсах пишу и с памятью проблем нет. А для меня валгринд это в первую очередь проверка на утечки) нюансов.

     
     
  • 3.13, 0xd34df00d (??), 09:03, 07/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Google perftools, -fsanitize=address/thread, интеловский инспектор.

    Альтернатив дофига, на самом деле. Санитайзеры — самое оно, валгринд работает на два порядка медленнее и на порядок грустнее.

     
  • 2.9, Аноним (-), 09:58, 20/06/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Лично для меня valgrind помер в тот момент, когда перестал работать без
    > отладочной информации. И ладно бы он требовал ее только для бинарника,
    > но нет же - она требуется для всех используемых бинарником библиотек,
    > начиная от libc и заканчивая иксовыми. Пересобирать всю систему со splitdebug?
    > Нет, спасибо. Могли бы хоть ключик оставить, что ли...

    Ну так надо было бы в issue это занести...
    А, для меня лично он помер - когда прочёл что поддерживает только никсы.
    Для программисткого ПО и особенно как для открытого это даже как то непрофессионально. Можете и это в Issue занеси.

     
     
  • 3.12, я (?), 13:13, 23/06/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Лично для меня valgrind помер в тот момент, когда перестал работать без
    >> отладочной информации. И ладно бы он требовал ее только для бинарника,
    >> но нет же - она требуется для всех используемых бинарником библиотек,
    >> начиная от libc и заканчивая иксовыми. Пересобирать всю систему со splitdebug?
    >> Нет, спасибо. Могли бы хоть ключик оставить, что ли...
    > Ну так надо было бы в issue это занести...
    > А, для меня лично он помер - когда прочёл что поддерживает только
    > никсы.
    > Для программисткого ПО и особенно как для открытого это даже как то
    > непрофессионально. Можете и это в Issue занеси.

    Советую прочитать про принцип работы valgrind (он очень близок к qemu-uaer). Его сложно портировать на системы с недокументированные ABI ядра OS и загрузчику исполняемых файлов.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру