The OpenNET Project / Index page

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

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

Доступен релиз 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
Тип: Программы
Ключевые слова: valgrind, memory, debug
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, A.Stahl, 10:37, 19/06/2017 [ответить] [смотреть все]
  • +8 +/
    >>Valgrind
    >Устранена утечка памяти

    Забавно:)

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

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

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

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

     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList