The OpenNET Project / Index page

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

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

24.10.2016 23:50

Состоялся релиз Valgrind 3.12.0, инструментария для отладки работы с памятью, обнаружения утечек памяти и профилирования. Работа Valgrind поддерживается для платформ X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, PPC32/Linux, PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, TILEGX/Linux, ARM32/Android, ARM64/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX и AMD64/MacOSX (macOS 10.10/10.11/12).

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

  • Поддержка набора инструкций ISA 3.0 для процессоров POWER;
  • Поддержка O32 FPXX ABI на процессорах MIPS;
  • Начальная поддержка инструкций AMD FMA4;
  • Поддержка инструкций v8 crypto и CRC на системах arm и arm64;
  • Повышение надёжности работы порта для ОС Solaris;
  • Начальная поддержка macOS 10.12 (Sierra);
  • В DRD значительно ускорен запуск потоков на платформах, отличных от Linux;
  • Замена функций семейства malloc и new теперь по умолчанию производится не только для системных библиотек, но и для глобально определённых функций из статически и динамически связанных альтернативных реализаций malloc;
  • В сервер GDB добавлена поддержка команды 'catch syscall';
  • Добавлена возможность загрузки сжатых секций debuginfo в форматах zlib ELF gABI (gcc -gz=zlib) и zlib GNU (gcc -gz=zlib-gnu);
  • Накладные расходы от работы JIT снижены на 10-15%.


  1. Главная ссылка к новости (https://sourceforge.net/p/valg...)
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45366-valgrind
Ключевые слова: valgrind, debug, memory
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 00:42, 25/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –13 +/
    Годнота.
     
     
  • 2.4, Аноним (-), 01:55, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +28 +/
    коммент для идиотских роликов на ютубе
     

  • 1.2, Аноним (-), 00:58, 25/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    порекомендуйте хороший рабочий процесс для выявления источника segmentation fault
     
     
  • 2.6, Alex_S (??), 03:24, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > порекомендуйте хороший рабочий процесс для выявления источника segmentation fault

    1. build your app with max debug info ( gcc -g3 )
    2. gdb



     
  • 2.8, Аноним (-), 07:34, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +14 +/
    1. gcc -g без защиты стека.
    2. Запускаете через Валгринд процесс с обработкой дочерних процессов и исключением ненужных.
    3. В выводе в консоль находите первое некорректное чтение, некорректную запись или обращение к неинициализированным данным и исправляете.
    4. Повторяете всё с 1-го пункта, если ошибки были найдены.

    Если ошибка в строке, где не может быть ошибки, то gcc -O0 -g и проверяете без оптимизации. Зачастую ошибки, возникающие после оптимизации лечатся простым созданием промежуточных переменных вместо передачи вызовов функций или выражений в функции.

    В конечном итоге нужно ещё один раз проверить код со всеми используемыми защитами стека и данных и с используемым уровнем оптимизации.

    Надеюсь, эта информация кому-нибудь пригодится.

     
     
  • 3.9, Аноним (-), 07:36, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ах да, чуть не забыл. Ещё нужен процессор с максимально большой частотой, т. к. Валгринд не поддерживает распараллеливание, т. е. все потоки и процессы вашего приложения будут эмулироваться в одном потоке с глобальными блокировками, что также не всегда даёт возможность воспроизводить ситуации гонки.
     
     
  • 4.10, Какаянахренразница (ok), 08:40, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Спасибо вам, мои анонимные братья. Благодаря вам, я нашёл в своём коде ошибку.
     
     
  • 5.15, Аноним (15), 16:17, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пожалуйста!
     
  • 3.14, Аноним (-), 16:14, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Еще добавлю, что с многопоточным софтом нужно пробовать не только мемчек (дефолтный анализатор, ищет ошибки работы с памятью), но и хелгринд (анализатор для поиска датарейсов).
     
  • 2.19, fi (ok), 23:06, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    в 90% случаев помогает:
    % gdb .../proga core

    и вопрос "where"

     
     
  • 3.21, Аноним (-), 16:43, 26/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я со временем почти перестал делать ошибки, от которых это помогает. Они довольно простые.
     

  • 1.3, Michael Shigorin (ok), 01:08, 25/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А когда-то создали для отладки самбы...
     
  • 1.11, Аноним (-), 08:45, 25/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Официальный сайт троллит:

    >The Valgrind tools are largely aimed at programs written in C and C++, because programs written in these languages tend to have the most bugs!

     
     
  • 2.12, Аноним (-), 10:20, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Так это, не ошибается тот кто ничего не делает :)
     
  • 2.13, skybon (ok), 14:06, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Больше нет живых языков со слабой типизацией и ручным управлением памятью. Так что всё верно написано.
     
     
  • 3.17, Аноним (-), 19:29, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Типизация там не такая уж и слабая, как минимум warning мозг будут клевать прилично, а культурные люди так с -Werror собирают. А если так не собирается - ОПА, возможно ты нашел автора от софта которого стоит держаться подальше. Жаль что для других ЯП это не всегда работает.
     
     
  • 4.20, тоже Аноним (ok), 09:06, 26/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Например, компилятор не ругается на использование результата dynamic_cast без проверки на ноль. Что легко превращает типизацию в тыкву.
     
  • 4.22, derlafff (ok), 22:45, 26/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >приличные люди собирают с -Werror

    Все компиляторы разные. "Приличный человек" собрал свое дерьмо с compilername-vX.Y.Z, а приличным мейнтейнерам потом этот -Werror из всей системы сборки седом выгребать.

     
     
  • 5.23, Michael Shigorin (ok), 23:26, 26/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> приличные люди собирают с -Werror
    > Все компиляторы разные. "Приличный человек" собрал свое дерьмо с compilername-vX.Y.Z

    Так то в кавычках.

    > а "приличным" мейнтейнерам потом этот -Werror из всей системы сборки седом выгребать.

    У приличных (без кавычек) разработчиков его приходится отрывать ровно в одном месте -- проходил при начальном портировании альта на эльбрус.

     
     
  • 6.24, Владимир (??), 06:48, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрел ваш доклад про бутстрап, очень круто!
     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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