Valgrind это приложение с открытым исходным кодом, которая предоставляет разработчикам программного обеспечения с одним из лучших и наиболее часто используемых инструментов для автоматического открытия заправки памяти и управления ошибками на своих проектах.
Другими словами, он может быть использован, чтобы значительно ускорить свои программы. Это и Rsquo; приложение командной строки С.А. работает только на консоли Linux или X11 терминал emulator.State-о-о-искусство характеристики и особенности functionalityKey включают детектор памяти ошибок, кучи профайлер, филиал предсказание и кэш профайлер, детекторы ошибок нить, а также призыв график генерирующей отрасли предсказания и кэш-Profiler.
Кроме того, она поставляется с нескольких экспериментальных инструментов, таких, как глобальное и стека массива перерасход детектора, SimPoint опорного генератора блок вектора, и второй кучи Profiler.
Приложение поддерживает широкий спектр программ, написанных на разных языках программирования, таких как C, C ++, Python, Perl, Java, Fortran, ассемблера, и многие другие.
Это и Rsquo, S состоит из нескольких полезных утилит для отладки, профилирования памяти и обнаружения утечек памяти. Они включают в себя MemCheck, Addrcheck, похожем на Cachegrind, Callgrind, нет, горный массив, EXP-sgcheck, EXP-BBV, EXP-dhat, Хелгринда, и РРП.
Это хорошо работает на GNU / Linux, Android, операционной системы Mac OS X. Поддерживаемые архитектуры включают в себя x86, amd64, ARM, ppc32, PPC64, s390x, MIPS32, MIPS64 и ARM.Availability и в рамках программы hoodThe может быть загружен с специальном разделе (см выше) только как исходного архива, который может быть настроить, скомпилирован и установлен на любом Linux-подобной операционной системы.
Тем не менее, пользователи могут установить Valgrind непосредственно из прикладных умолчанию хранилищ их дистрибутивов на. Поддерживаемые операционные системы включают в себя Debian, Red Hat, Mandriva, OpenSUSE, Arch Linux, Slackware, Gentoo, и others.Bottom LINEIN вывод, Valgrind является уникальное приложение, которое следует использовать любой разработчик программного обеспечения для ускорения их программ и устранения ошибок памяти неприятные и утечки.
Это и Rsquo; S наградами программное обеспечение, которое успешно используется в научных целях в Массачусетском технологическом институте в Кембридже, Калифорнийском университете в Беркли, Карнеги-Меллона, Калифорнийского университета в Санта-Барбаре, Корнелл, и многих других университетах по всему миру
- 3.10.1 является выпуск Исправлена ошибка. Он исправляет различные ошибки, приведенные в 3.10.0 и Backports исправлений для всех пропавшими без вести инструкции AArch64 ARMv8 и системные вызовы из ствола. Если вы упаковать или доставить 3.10.0 для использования другими, вы, возможно, захотите рассмотреть вопрос о повышении на 3.10.1 вместо.
Что нового в версии 3.10.0:
- 3.10.0 особенность релиз с много улучшений и обычный набор исправлений.
- Этот релиз поддерживает x86 / Linux, AMD64 / Linux, ARM32 / Linux, ARM64 / Linux, ppc32 / Linux, PPC64BE / Linux, PPC64LE / Linux, s390x / Linux, MIPS32 / Linux, MIPS64 / Linux, ARM / Android, MIPS32 / Android, x86 / Android, x86 / MacOSX 10.9 и AMD64 / MacOSX 10.9. Поддержка MacOSX 10,8 и 10,9 значительно улучшается по сравнению с выпуском 3.9.0.
Что нового в версии 3.9.0:
- Этот релиз поддерживает x86 / Linux, AMD64 / Linux , ARM / Linux, ppc32 / Linux, PPC64 / Linux, s390x / Linux, MIPS32 / Linux, MIPS64 / Linux, ARM / Android, x86 / Android, x86 / MacOSX 10.7 и AMD64 / MacOSX 10.7. Поддержка Mac OS X 10.8 будет значительно улучшена по сравнению с выпуском 3.8.0.
- ПЛАТФОРМА изменения:
- Поддержка MIPS64 LE и BE работает Linux. Valgrind была протестирована на MIPS64 Debian Squeeze и Debian хриплый распределений.
- Поддержка MIPS DSP ASE на MIPS32 платформ.
- Поддержка инструкций s390x десятичной плавающей точкой на хозяев, которые имеют центр DFP установлен.
- Поддержка Power8 (мощность 2,07 ISA) инструкции
- Поддержка инструкций Intel AVX2. Эта функция доступна только на 64 битном коде.
- Начальная поддержка Intel транзакционных синхронизации расширений, как RTM и ЭЛЧ.
- Начальная поддержка Hardware транзакционной памяти на власть.
- Улучшена поддержка MacOSX 10.8 (64-разрядная). Теперь Memcheck может работать большие приложения с графическим интерфейсом сносно.
- инструмент изменения:
- Memcheck:
- Улучшения в обработке vectorised кода, что приводит к значительно меньше отчеты ложные ошибки. Вы должны использовать флаг --partial загружает-OK = да, чтобы получить преимущества этих изменений.
- Лучший контроль над проверки герметичности. Теперь можно указать, какие виды утечки (определенная / косвенный / возможно / добраться) должен отображаться, что следует рассматривать как ошибки, и которая должна быть подавлена данной подавления утечки. Это делается с помощью опции, --show-Leak-виды = kind1, kind2, .., --errors-за утечек-видов = kind1, kind2, .. и дополнительный & Quot; матч-утечки-виды: & Quot; строка в записи подавления, соответственно. Обратите внимание, что генерируемые подавления утечки содержать эту новую линию и, следовательно, более конкретным, чем в предыдущих версиях. Чтобы получить то же поведение, как и предыдущие релизы, удалите & Quot; матч-утечек виды: & Quot; линия от генерируемых пресечения перед их использованием.
- Снижение & Quot; возможная утечка & Quot; отчеты с проверки герметичности путем использования лучших эвристики. Доступные эвристики обеспечивают обнаружение действительных внутренних указателей на STD :: stdstring, к новым [], выделенных массивов с элементами, имеющими деструкторы и внутренних указателей, указывающих на внутренней части C ++ с использованием объектно множественное наследование. Они могут быть выбраны по отдельности, используя опцию --leak-чек-эвристики = heur1, heur2, ...
- Лучший контроль приобретения StackTrace для кучи-выделено блоков. С помощью опции --keep-stacktraces, можно управлять независимо, является ли приобрел трассировки стека для каждого распределения и освобождения. Это может быть использован для создания более и Quot; использовать после свободной и Quot; ошибки или уменьшить потребление ресурсов VALGRIND путем записи меньше информации.
- Лучше отчетности использования подавления утечки. Список использованных пресечения (отображается, когда опция -v задается) теперь показывает, для каждого утечки пресечения, сколько блоков и байт это подавляется во время последнего поиска утечек.
- Helgrind:
- Ложные ошибки, связанные с использованием статически инициализированных мьютексов и условных переменных (PTHREAD_MUTEX_INITIALISER, и т.д.) были удалены.
- Ложные ошибки, возникающие в результате использования pthread_cond_waits, что тайм-аут, были удалены.
- ДРУГИЕ ИЗМЕНЕНИЯ:
- Некоторые пытаются космических требований Tune VALGRIND на ожидаемых возможностей цели:
- По умолчанию размер кэша перевода была снижена с 8 до 6 секторов на Android платформ, так как каждый сектор занимает около 40 Мб при использовании MemCheck.
- По умолчанию размер кэша перевода была увеличена до 16 секторов на всех остальных платформах, отражая тот факт, что крупные приложения требуют приборов и хранение огромных объемов кода. По тем же причинам, количество памяти отображается сегментов, которые могут быть отслежены была увеличена в 6.
- Во всех случаях максимальное число секторов в кэше перевода можно управлять с помощью нового флага --num-transtab секторах.
- Изменения в том, как отладочной информации (номера строк и т.д.) читается:
- Valgrind больше не временно mmaps весь объект, чтобы читать из него. Вместо этого, чтение осуществляется с помощью небольшого фиксированного размера буфера. Это позволяет избежать пиковых нагрузок виртуальной памяти, когда Valgrind читает DebugInfo от крупных общих объектов.
- Новое экспериментальное дистанционного отладочная информация сервер. Valgrind можете прочитать отладочную информацию от другой машины (обычно, множество сборки), где DebugInfo объекты хранятся. Это может сэкономить много времени и хлопот при работе Valgrind на ограниченных ресурсов целей (телефоны, планшеты), когда полные объекты DebugInfo хранятся где-то еще. Это позволило в --debuginfo-сервера = вариант.
- проверка между основными и отладки объектов Консистенция может быть отключена с помощью опции --allow-несовпадающими-DebugInfo.
- Стек раскручивание стека при сканировании, на ARM. Амортизация при сканировании стека может восстановить следы стека в некоторых случаях, когда нормальные Отмотать механизмы не. Сканирование стек лучше всего описывается как & Quot; неприятный, опасный и вводящей в заблуждение рубить & Quot; и так по умолчанию отключена. Используйте --unw-стека, скан-Thresh и --unw стека-SCAN-кадры для включения и контролировать его.
- Обнаружение и объединение рекурсивных циклов кадре стека. Когда ваша программа имеет рекурсивных алгоритмов, это ограничивает объем памяти, используемый Valgrind для зарегистрированных трассировки стека и избежать записи неинтересные неоднократные призывы. Это контролируется опцией командной строки --merge-рекурсивной-кадра и с помощью команды монитора и Quot; v.set объединить-рекурсивные рамы & Quot;.
- Имя файла и номера строки для используемых пресечения. Список использованных пресечения (отображается, когда опция -v задается) теперь показывает, для каждого используемого подавления, имя файла и номер строки, где подавление определяется.
- Новые и модифицированные GDB особенности монитора сервера:
- valgrind.h имеет новый запрос клиента, VALGRIND_MONITOR_COMMAND, которые могут быть использованы для выполнения команд gdbserver мониторов из клиентской программы.
- Новая команда монитор, и Quot;. v.info open_fds & Quot ;, который дает список открытых дескрипторов файлов и дополнительных деталей
- Дополнительный сообщение в & Quot; v.info n_errs_found & Quot; контролировать команду, например & Quot;. v.info n_errs_found тест +1234 закончил и Quot ;, позволяя строка комментария будет добавлен к выходу процесса, возможно, с целью разделения ошибок различных тестов или тестов фаз
- Новая команда монитор & Quot; v.info execontext & Quot; который показывает информацию о трассировки стека, записанных Valgrind.
- Новая команда монитор & Quot; v.do expensive_sanity_check_general & Quot; для запуска некоторых внутренних проверок на непротиворечивость.
- Новый флаг --sigill-диагностика для контроля ли печатать диагностическое сообщение, когда JIT-сталкивается инструкцию он не может перевести. Фактическое поведение - поставка SIGILL к применению. - Остается неизменной
- Максимальная сумма памяти, Valgrind может использовать на 64-разрядных целей была увеличена с 32 Гб до 64 ГБ. Это должно сделать возможным запуск приложений на MemCheck, что изначально требуют примерно до 35GB.
- Исправлены ошибки:
- Следующие ошибки были исправлены или решены. Обратите внимание, что & Quot; н-я-BZ & Quot;
- обозначает & Quot; не Bugzilla и Quot; - То есть, ошибка, что сообщили нам
- , но не получил запись Bugzilla. Мы рекомендуем вам подать ошибки в
- Bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind), а
- , чем почтовый разработчиков (или списки рассылки) непосредственно - ошибки, которые
- не вступил в Bugzilla правило, чтобы получить забыл о или игнорируются.
- Чтобы просмотреть подробную информацию о данном ошибка, посетите https://bugs.kde.org/show_bug.cgi?id=XXXXXX где ХХХХХХ это число ошибка, как показано ниже.
- 123837 системный вызов: 4 аргумент не является обязательным, в зависимости от Cmd
- 135425 MemCheck должен сказать вам, где Освобожденные блоки были Mallocd
- 164485 VG_N_SEGNAMES и VG_N_SEGMENTS (все еще) слишком мал
- 207815 Добавляет некоторые DRM IOCTLs в syswrap-linux.c
- +251569 выпуклая amd64- & GT; ИК: 0xF 0x1 0xF9 0x90 0xBF 0xD0 0x3 0x0 (RDTSCP)
- 252955 Невозможно скомпилировать с кэш компилятора
- 253519 Memcheck сообщает auxv указатель доступ недействительными читает.
- 263034 Ошибка при загрузке некоторых PPC64 двоичные файлы
- 269599 Увеличение глубокое трассировку
- 274695 s390x: Поддержка и Quot; предложения от / до логического & Quot; Инструкции (z196)
- 275800 s390x: Автоматически информации кэша (часть 2)
- 280271 Valgrind сообщает возможно утечки памяти на еще достижимый STD :: строка
- 284540 Memcheck не следует рассчитывать подавления соответствия еще добраться [..]
- 289578 цепочек вызовов с ARM расслабиться таблицы (стек флаги сканирования)
- 296311 Неправильные трассировки стека из-за -fomit кадра-указатель (x86)
- 304832 ppc32: построить неисправность
- 305431 Использование find_buildid shdr запасной для отдельных файлов .debug
- 305728 добавить поддержку инструкций AVX2
- 305948 ppc64: Код поколения для ShlD64 / ShrD64 утверждает
- 306035 s390x: поколение ИК Fix для Laag и друзей
- 306054 s390x: Код вычисления условие для преобразования к Int / логического
- 306098 s390x: альтернативная форма код операции для преобразования в / из фиксированной
- 306587 Исправлена строка кэша для КПК.
- 306783 Mips необработанное системный вызов: 4025/4079/4182
- 307038 DWARF2 CFI читатель: необработанное DW_OP_ код операции 0x8 (DW_OP_const1u др)
- 307082 HG ложных срабатываний: pthread_cond_destroy: уничтожение неизвестного CV
- 307101 sys_capget второй аргумент может быть NULL,
- 307103 sys_openat:. Если путь является абсолютным, то dirfd игнорируется
- 307106 amd64- & GT; ИК: f0 0f с0 02 (блокировка xadd байт)
- 307113 s390x: поддержка DFP
- 307141 Valgrind does't работа в системе Linux MIPS-
- 307155 filter_gdb должны отфильтровать системного вызова-template.S T_PSEUDO
- 307285 x86_amd64 функция тест для AVX в тестовый набор не так
- 307290 MemCheck перекрытия TestCase должен тетсру версия фильтра
- 307463 Пожалуйста, добавьте & Quot; & предельного = 0 & Quot; к & Quot; всех открытых ошибок & Quot; ссылка
- 307465 --show-возможно потерянный = нет должны сократить код ошибки Количество / выход
- 307557 Утечки на Mac OS X 10.7.5 библиотеки в ImageLoader :: recursiveInit [..]
- 307729 pkgconfig поддержка нарушается valgrind.pc
- 307828 MemCheck ложные ошибки SSE оптимизирована wcscpy, wcscmp, wcsrchr, wcschr
- 307955 Строительство Valgrind 3.7.0-r4 терпит неудачу в Gentoo AMD64 при использовании лязг
- 308089 Неизвестное системного вызова на ppc64: prctl
- 308135 ppc32 MPC8xx имеет 16 байт размер кэша
- 308321 Тестов MemCheck фильтр препятствует gdb_filter
- 308333 307106 ==
- 308341 vgdb должны сообщить выход процесса (или фатальный сигнал)
- 308427 s390 отчеты MemCheck TSearch cjump / CMOVE зависит от uninit
- 308495 Снимите сборки зависимость от установленных Xen заголовков
- 308573 Внутренняя ошибка на 64-битной инструкции, выполненные в 32-битном режиме
- 308626 308627 ==
- немного действия 308627 pmovmskb является неточным
- 308644 vgdb за то, что данные для опции трек-FDS
- 308711 дать больше информации о aspacemgr и арен в out_of_memory
- 308717 ARM: осуществлять фиксированной запятой VCVT.F64 [SU] 32 .
- 308718 ARM реализации SMLALBB семью инструкций
- 308886 Отсутствует поддержка PTRACE_SET / GETREGSET
- 308930 системный вызов name_to_handle_at (303 на amd64) не обрабатывается
- V-чуть тестер 309229 не сообщить ряд испытаний генерируется
- 309323 печать непризнанной Instuction на MIPS
- 309425 Обеспечить флаг в --sigill-диагностики в целях пресечения незаконной [..]
- 309427 ГСП оптимизирован stpncpy триггер неиницализированные значение [..] ошибки
- 309430 самообслуживания хостинг ppc64 встречает ошибку vassert о типе операнда
- 309600 Valgrind немного смущен о 0 размера разделов
- 309823 Создать ошибки для неподвижных блоков, достижимых
- 309921 бит достоверности PCMPISTRI является неточным
- 309922 нет / тесты / ppc64 / test_dfp5 иногда не
- 310169 Класс Iop_CmpORD операций ввода-вывода не поддерживается vbit проверки.
- 310424 --read-вар-инфо не правильно описать статические переменные
- 310792 Поиск дополнительный путь для отладочных символов
- 310931 s390x: Сообщение-безопасности помочь (MSA) расширение инструкция [..]
- 311100 КПП DFP реализация целых чисел не соответствует [..]
- 311318 ARM: & Quot; 128-битной константой не реализован и Quot; Сообщение об ошибке
- 311407 SSSE3 bcopy (на самом деле превращают тетсру) вызывает недействительным чтения [..]
- 311690 В аварии, потому что он перенаправляет ветви внутри перенаправлены функции
- 311880 x86_64: сделать regtest зависает на shell_valid1
- 311922 ВНИМАНИЕ: необработанное системного вызова: 170
- 311933 251569 ==
- 312171 КПП: выбор insn для DFP
- 312571 Округление режим вызова неправильно для DFP IOPS [..]
- 312620 Изменения в Iop_D32toD64 [..] для поддержки s390 DFP сломал КПП [..]
- 312913 Висячие указатели ошибка должна также сообщить след Alloc стека
- 312980 Строительство на Mountain Lion генерирует компилятор некоторые предупреждения
- 313267 Добавление MIPS64 / Linux порт для Valgrind
- 313348 251569 ==
- 313354 251569 ==
- 313811 буфера в assert_fail
- 314099 Coverity указал ошибку в VEX guest_ppc_toIR.c insn_suffix
- 314269 КПП: умер код в выборе insn
- 314718 ARM: осуществлять целое инструкцию деления (sdiv и udiv)
- 315345 CL-format.xml и callgrind / dump.c не согласны на использование CFL = или CFI =
- 315441 sendmsg системный вызов должен игнорировать неустановленные msghdr msg_flags
- 315534 msgrcv внутри нити вызывает Valgrind повесить (блок)
- 315545 Утверждение "(Uchar *) Во-GT &; тт [tteNo] .tcptr игнорирован '
- 320895 добавить fanotify поддержку (патч в комплекте)
- 320998 выпуклая amd64- & GT; ИК инструкция pcmpestri и pcmpestrm SSE4.2
- 321065 обновления, valgrind для Xen 4.3
- 321148 Неизвестное инструкция: PLI (Thumb 1, 2, 3)
- 321 363 Неизвестное инструкция: SSAX (ARM Thumb +)
- триста двадцать одна тысяча триста шестьдесят-четыре Неизвестное инструкция: SXTAB16 (ARM Thumb +)
- 321466 Неизвестное инструкция: SHASX (ARM Thumb +)
- 321467 Неизвестное инструкция: SHSAX (ARM Thumb +)
- 321468 Неизвестное инструкция: SHSUB16 (ARM Thumb +)
- 321619 Неизвестное инструкция: SHSUB8 (ARM Thumb +)
- 321620 Неизвестное инструкция: UASX (ARM Thumb +)
- триста двадцать одна тысяча шестьсот двадцать один Неизвестное инструкция: USAX (ARM Thumb +)
- триста двадцать один тысяча шестьсот девяносто две Неизвестное инструкция: UQADD16 (ARM Thumb +)
- триста двадцать одна тысяча шестьсот девяносто три Неизвестное инструкция: LDRSBT (палец)
- 321694 Неизвестное инструкция: UQASX (ARM Thumb +)
- 321696 Неизвестное инструкция: UQSAX (палец + ARM)
- 321 697 Неизвестное инструкция: UHASX (ARM Thumb +)
- 321703 Неизвестное инструкция: UHSAX (ARM Thumb +)
- 321704 Неизвестное инструкция: REVSH (ARM Thumb +)
- 321730 Добавить cg_diff и cg_merge мужчина страницы
- 321738 Добавить vgdb и Valgrind-слушатель мужчина страницы
- 321814 315545 ==
- 321891 Неизвестное инструкция: LDRHT (палец)
- 321960 pthread_create (), то ALLOCA () вызывает ошибки недействительным стек записи
- 321 969 ppc32 ppc64 и не поддерживают [LF] setxattr
- 322254 Показать threadname вместе с TID, если установлено путем применения
- 322294 Добавить начальную поддержку для IBM Power ISA 2.07
- 322368 отказ утверждение wqthread_hijack под OS X 10.8
- 322563 выпуклая mips- & GT; ИК: 0x70 0x83 0x3a 0xF0 LI>
- 322807 VALGRIND_PRINTF_BACKTRACE пишет стек вызовов для XML и текст в стандартный поток ошибок
- 322851 0bXXX двоичной буквальное синтаксис не является стандартом
- 323035 Неизвестное инструкция: LDRSHT (палец)
- 323036 Необработанные инструкция: SMMLS (ARM Thumb и)
- 323116 MemCheck / тесты / ppc64 / power_ISA2_05.c не может построить [..]
- 323175 Неизвестное инструкция: SMLALD (ARM Thumb +)
- 323177 Неизвестное инструкция: SMLSLD (ARM Thumb +)
- 323432 Вызов pthread_cond_destroy () или pthread_mutex_destroy () [..]
- 323437 Этап 2 поддержка IBM Power ISA 2.07
- 323713 Поддержка mmxext (целое SSE) подмножество, на i386 (Athlon)
- 323803 Инструкция памяти транзакций не поддерживается для власти
- 323893 SSE3 не доступны на процессорах AMD в Valgrind
- 323905 Возможная ложных срабатываний от Valgrind / РРП при закрытии ()
- 323912 valgrind.h заголовок не совместим для mingw64
- 324047 Valgrind не поддерживает [LDR, ST] {S} [В, Н] Т инструкции ARM
- 324149 Helgrind: Когда pthread_cond_timedwait возвращает ETIMEDOUT [..]
- 324181 ММАП не справиться MAP_32BIT
- 324227 MemCheck ложных срабатываний утечки, когда поток вызывает выход + блок [..]
- 324421 Поддержка API fanotify на ARM архитектуре
- 324514 gdbserver контролировать CMD последовательности поведения выход [..]
- 324518 ppc64: эмуляция dcbt инструкции не справиться [..]
- 324546 нет / тесты / ppc32 test_isa_2_07_part2 просит -m64
- 324582 Если доступ сделаны освобожденной памяти, сообщить как распределения [..]
- 324594 Исправлена питания ISA 2,06 insns:. mulldo / mulldo
- 324765 ppc64: незаконное инструкция при выполнении нет / тесты / ppc64 / JM-разное
- 324816 Неправильное выполнение VEX для xscvspdp / xvcvspdp для входов SNaN
- 324834 Необработанные инструкции Microsoft C во время выполнения для x86_64
- 324894 Фаза 3 поддержка IBM Power ISA 2.07
- 326091 РРП: Избегайте ложных отчетов гонки с оптимизированными STRLEN () impls
- 326113 Valgrind libvex hwcaps ошибке на AMD64
- Ni-BZ Некоторые неправильные параметры командной строки могут быть проигнорированы
- Ni-BZ патч, чтобы справедливой SCHED на андроид
- Ni-BZ сообщить об ошибке на vgdb снимка просил перед казнью
- Ni-BZ же, как 303624 (фиксируется в 3.8.0), но для x86 Android
не
детектирования от вспомогательного вектора
не
Распространение
Команда
Распространение
Переполнение
вычисление переполнения
Что нового в версии 3.8.1:
- Это исправляет некоторые сбои утверждение 3.8.0, что происходят умеренно часто в тех случаях, реальное использование, добавлена поддержка для некоторых отсутствующих инструкции по ARM, и фиксирует состояние тупика на MacOSX.
- Если вы упаковать или доставить 3.8.0 для использования другими, вы, возможно, захотите рассмотреть вопрос о повышении на 3.8.1 вместо.
Что нового в версии 3.6.0:
- Это особенность релиз с многих значительных улучшений и обычный набор исправлений.
- Основное улучшение в том, что Valgrind теперь работает на ARM / Linux и Mac OS X 10.6 (Snow Leopard).
Комментарии не найдены