Valgrind е приложение с отворен код, която предоставя на разработчиците на софтуер с един от най-добрите и най-често използваните инструменти за автоматично откриване на паметта резби и управленски грешки на своите проекти.
С други думи, тя може да се използва за значително ускоряване на вашите програми. Тя & rsquo; SA заявление от командния ред на пистите само за Linux конзола или X11 терминал emulator.State-на-най-съвременни функции и functionalityKey характеристики включват памет грешка детектор, грамада профайлър, клон-прогнози и кеш профайлър, детектори за грешки конци, както и генериране на повикване-графика клон-прогнози и кеш профайлър.
В допълнение, той идва с няколко експериментални инструменти, като например глобалното и групирана решетка залят детектор, SimPoint основния блок вектор генератор, и втората купчина профайлър.
Приложението поддържа широк набор от програми, написани на различни програмни езици, като C, C ++, Python, Perl, Java, Fortran, монтаж код, както и много други.
Тя & rsquo; S състои от няколко полезни приложения за памет отстраняване на грешки, профилиране и откриване на изтичане на памет. Те включват Memcheck, Addrcheck, Cachegrind, Callgrind, None, Масив, EXP-sgcheck, EXP-BBV, EXP-dhat, Helgrind и DRD.
Тя работи добре на 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; е един софтуер носител на няколко награди, които се използва успешно за изследователски цели в Масачузетския технологичен институт, Кеймбридж, Калифорнийския университет в Бъркли, Carnegie Mellon, Калифорнийския университет в Санта Барбара, Корнел, и много други университети в света
<силна. > Какво е новото в тази версия:
- 3.10.1 е освобождаване бъг. Той определя различни бъгове, съобщени в 3.10.0 и backports поправки за всички обявени за изчезнали AArch64 ARMv8 инструкции и syscalls от багажника. Ако опаковката или достави 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 версия.
- PLATFORM ПРОМЕНИ:
- Подкрепа за MIPS64 LE и да работи Linux. Valgrind е тествана на MIPS64 Debian Squeeze и Debian хриптящи дистрибуции.
- Подкрепа за MIPS DSP ASE на MIPS32 платформи.
- Подкрепа за s390x десетична плаваща запетая инструкции за домакините, които имат възможност DFP инсталиран.
- Подкрепа за POWER8 (Power ISA 2.07) инструкции
- Подкрепа за Intel инструкции AVX2. Това е достъпно само на 64 битов код.
- Първоначална подкрепа за Intel Транзакции синхронизация Extensions, двете RTM и HLE.
- Първоначална подкрепа за Hardware Transactional Memory върху властта.
- подобрена поддръжка за MacOSX 10.8 (64-битови). Memcheck сега може да работи на големи графични приложения търпимо добре.
- Инструмент за промени:
- Memcheck:
- Подобрения в обработката на vectorised код, водещи до значително по-малко неверни съобщения за грешки. Вие трябва да използвате флага --partial натоварвания-ОК = Да, за да се извлекат ползите от тези промени.
- По-добър контрол над контролното на течове. Сега е възможно да се определи кои видове течове (определена / индиректно / възможно / постижимо) трябва да бъдат показани, които следва да се считат за грешки, и които трябва да бъдат подтиснати от дадена потискане на течове. Това се прави, като използвате опциите в --show-течащата видове = kind1, kind2, .., --errors-за-течащата видове = kind1, kind2, .. и незадължителен & quot; мач-течащата видове: & quot; Онлайн в записите пръски, съответно. Имайте предвид, че генерираните подтискане на течове съдържат тази нова линия и следователно са по-специфични, отколкото в предните издания. За да получите същото поведение като предните издания, извадете & quot; мач-течащата видове: & quot; линия от генерираните подтискане преди да ги използвате.
- Намалена & quot; е възможно изтичане на & quot; доклади от проверката на течове чрез използването на по-добри евристични методи. Наличните евристики осигуряват откриване на валидни интериорни указатели към STD :: stdstring, за нови [] разпределени масиви с елементи, имащи деструктори и да интериорни указатели, сочещи към вътрешна част на C ++ обект чрез множество наследство. Те могат да бъдат индивидуално избрани с помощта на опцията --leak-Check-евристики = heur1, heur2, ...
- По-добър контрол на придобиване stacktrace за натрупаш разпределени блокове. Използването на опцията за --keep-stacktraces, че е възможно да се контролира независимо дали следа стак е придобит за всяко разпределение и deallocation. Това може да се използва за създаване на по-добро & quot; използвайте след свободен & quot; грешки или да намалят потреблението на ресурси Valgrind чрез записване по-малко информация.
- По-добро отчитане на използването на потискане на течове. Списъкът на използваните подтискане (показано в който е дадена -v опцията) сега показва, за всеки течове подтискане, колко блокове и байтове го потиснат през последната търсенето теч.
- Helgrind:
- Фалшиви грешки, произтичащи от използването на статично инициализирани mutexes и състоянието променливи (PTHREAD_MUTEX_INITIALISER, и т.н.) са били отстранени.
- Фалшиви грешки, произтичащи от използването на pthread_cond_waits че изчакване, са били отстранени.
- Други промени:
- Някои опит за изисквания мелодия Valgrind космически с очакваните възможности на целта:
- стандартния размер на кеша за превод е намален от 8 сектора до 6 за Android платформи, тъй като всеки сектор заема около 40MB при използване Memcheck.
- стандартния размер на кеша за превод е увеличен на 16 сектора на всички други платформи, се дължи на факта, че големи приложения изискват апаратура и съхраняване на огромни количества код. По подобни причини, броят на паметта картирани сегменти, които могат да бъдат проследени е увеличена с коефициент 6.
- Във всички случаи, максималният брой сектори в кеша за превод може да се контролира от новото обозначение --num-transtab-сектори.
- Промени в начина, информация за отстраняване на грешки (номерата на редовете и др) се чете:
- Valgrind вече не временно mmaps целия обект, за да я прочете. Вместо това, четенето се извършва чрез малък фиксиран размер буфер. Така се избягва шпайкове ползване виртуална памет, когато Valgrind гласи debuginfo от големи споделени обекти.
- Нова експериментална дистанционно отстраняване на грешки инфо сървър. Valgrind да прочетете за отстраняване на грешки на информация от друга машина (обикновено, натрупване домакин), където се съхраняват debuginfo обекти. Това може да спести много време и усилия, когато работи Valgrind по-ограничени ресурси цели (телефони, таблети), когато пълните debuginfo обектите се съхраняват някъде другаде. Това е възможно чрез --debuginfo-сървър = опция.
- Съвместимост проверка между основните и отстраняване на грешки на обекти може да се деактивира чрез опцията --allow-несъвпадение-debuginfo.
- Stack размотаване от стака сканиране, за ARM. Развиване, от комин сканиране може да се възстанови стека следи в някои случаи, когато нормалната Развийте механизми не успяват. Stack сканиране е най-добре като & quot; неприятен, опасно и подвеждащо хак & quot; и така е изключена по подразбиране. Използвайте --unw стак-сканиране вършееш и --unw стак сканиране рамки, за да се даде възможност и да го управлявате.
- Detection и сливане на рекурсивни цикли стека рамка. Когато вашата програма има рекурсивни алгоритми, това ограничава паметта, използвана от 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; да работят с някои вътрешни проверки за съответствие.
- New флаг --sigill диагностика, за да контролират дали диагностично съобщение се отпечатва, когато СЕР срещне инструкция не може да превежда. Действителното поведение - доставка на SIGILL към заявлението -. Е непроменена
- Максималният размер на паметта, която Valgrind да използвате за 64 битови цели е увеличен от 32 GB до 64 GB. Това би трябвало да позволи да стартирате приложения за 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 където XXXXXX е броят на бъг, както са изброени по-долу.
- 123837 система разговор: 4-ти аргумент е по желание, в зависимост от ПМС
- 135425 memcheck трябва да ви кажа, когато освободен блокове бяха Mallocd
- 164485 VG_N_SEGNAMES и VG_N_SEGMENTS са (все още) е твърде малка
- 207815 добавя някои от ioctls DRM да syswrap-linux.c
- 251569 Vex amd64- & GT; IR: 0xF 0x1 0xF9 0xBF 0x90 0xD0 0x3 0x0 (RDTSCP)
- 252955 невъзможност за комбиниране с ccache
- 253519 Memcheck съобщава auxv показалеца достъп за невалидни чете.
- 263034 Crash при зареждане на някои PPC64 бинарни файлове
- 269 599 Увеличение дълбоката обратно проследяване
- 274695 s390x: Подкрепа & quot; сравни с / от логично & quot; инструкции (z196)
- 275800 s390x: Автоматично инфо кеш (част 2)
- 280271 Valgrind съобщава възможно изтичане на памет за още-достижима STD :: низ
- 284540 Memcheck да не разчита подтискане съвпадение все-постижимо [..]
- 289578 Backtraces с ARM разпуснете маси (стека знамена сканиране)
- 296311 Грешен стека следи поради -fomit кадър тройка (x86)
- 304832 ppc32: изграждане недостатъчност
- 305431 Използвайте find_buildid shdr аварийната отделни .debug файлове
- 305728 добави поддръжка за инструкции AVX2
- 305948 ppc64: генериране на код за ShlD64 / ShrD64 твърди
- 306035 s390x: Fix поколение IR за LAAG и приятели
- 306054 s390x: Състояние код изчисление за конвертирате-да-INT / логично
- 306098 s390x: алтернативна форма Кодът за конвертиране на до / от фиксирана
- 306587 Fix кеш линия от спомагателни вектор за PPC.
- 306 783 Mips необработено syscall: 4025/4079/4182
- 307038 DWARF2 CFI четец: необработено DW_OP_ Кодът 0x8 (DW_OP_const1u и др)
- 307082 HG фалшиво положителни: pthread_cond_destroy: унищожаване на неизвестно CV
- 307101 sys_capget втория аргумент може да бъде нула
- 307103 sys_openat:. Ако името на пътя е абсолютна, а след това dirfd се игнорира
- 307106 amd64- & GT; IR: f0 0f c0 02 (заключване xadd байт)
- 307113 s390x: подкрепа DFP
- 307141 valgrind does't работа в MIPS-Linux система
- 307155 filter_gdb трябва да филтрира syscall-template.S T_PSEUDO
- 307285 x86_amd64 функция тест за AVX в тестов пакет е наред
- 307290 memcheck припокриване TestCase нуждае memcpy версия филтър
- 307 463 Моля, добавете & 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 Building valgrind 3.7.0-R4 се провали в Gentoo AMD64 при използване трясък
- 308089 Необработена syscall на ppc64: prctl
- 308135 PPC32 MPC8xx има 16 байта размер на кеша
- 308321 testsuite memcheck филтър пречи gdb_filter
- 308 333 == 307 106
- 308341 vgdb следва да докладва прекратяване на процеси (или фатален сигнал)
- 308 427 s390 доклади memcheck tsearch cjump / cmove зависи uninit
- 308495 Remove строителство зависимост от инсталираните Xen хедъри
- 308 573 Вътрешна грешка на 64-битови инструкции екзекутирани в 32-битов режим
- 308 626 == 308 627
- битов валидност 308627 pmovmskb размножаване е неточно
- 308644 vgdb команда за това, че информацията за възможността коловозното FDS
- 308711 даде повече информация за aspacemgr и арени в out_of_memory
- 308717 ARM: приложат фиксирана точка VCVT.F64 [SU] 32 .
- 308718 ARM приложи SMLALBB семейството на инструкции
- 308886 Липсва подкрепа за PTRACE_SET / GETREGSET
- 308930 syscall name_to_handle_at (303 за AMD64) не се работи
- 309229 V-битов тестер не отчита редица тестове, генерирани
- 309323 печат непризнатата instuction на MIPS
- 309425 Представете --sigill-диагностика флаг за подтискане на незаконно [..]
- 309427 SSE оптимизиран stpncpy спусъка uninitialised стойност [..] грешки
- 309430 Self хостинг ppc64 срещне грешка vassert на операнд от тип
- 309600 valgrind е малко объркан за 0-големи секции
- 309823 Генериране на грешки при неподвижните достъпни блокове
- 309 921 битов валидност PCMPISTRI размножаване е неточно
- 309922 никоя / тестове / ppc64 / test_dfp5 понякога не успява
- 310169 Класът Iop_CmpORD на IOPS не се поддържа от програмата за проверка на vbit.
- 310424 --read-Var-инфо не правилно опише статични променливи
- 310792 търсене допълнителен път за отстраняване на грешки символи
- 310931 s390x: ЛС-сигурността подпомага (MSA) разширение инструкция [..]
- 311100 PPC DFP изпълнение на целочислени операнди е несъвместимо [..]
- 311318 ARM: & quot; 128-битов постоянно не се изпълнява & quot; съобщение за грешка
- 311407 ssse3 bcopy (всъщност превръща memcpy) причинява невалиден четене [..]
- 311 690 V катастрофи, защото тя пренасочва клонове вътре в пренасочени функция
- 311880 x86_64: направи regtest увисва при shell_valid1
- 311 922 ВНИМАНИЕ: необработено syscall: 170
- 311 933 == 251 569
- 312 171 НПК: подбор insn за DFP
- 312 571 Закръгляване режим разговор погрешно за DFP IOPS [..]
- 312 620 Промяна на Iop_D32toD64 [..] за подкрепа s390 DFP проби НПК [..]
- 312 913 висящи указатели грешка трябва да докладва следа АПос стека
- 312 980 Сграда на Mountain Lion генерира някои компилатор предупреждения
- 313 267 Добавяне MIPS64 / Linux порт да Valgrind
- 313 348 == 251 569
- 313 354 == 251 569
- 313811 препълване на буфера в assert_fail
- 314099 Coverity посочи грешка в VEX guest_ppc_toIR.c insn_suffix
- 314 269 НПК: мъртъв код в подбора insn
- 314718 ARM: прилагане число разделение инструкция (sdiv и udiv)
- 315 345 CL-format.xml и callgrind / dump.c не се споразумеят за използване КФЛ = или CFI =
- 315,441 sendmsg syscall бива да пренебрегваме изключено msghdr msg_flags
- 315534 msgrcv вътре нишка причинява valgrind да се мотае (блок)
- 315545 Assertion "(UChar *) раздел & GT; TT [tteNo] .tcptr soname"
- 320895 добавите fanotify подкрепа (кръпка включени)
- 320998 Vex amd64- & GT; IR pcmpestri и pcmpestrm SSE4.2 инструкция
- 321065 Valgrind актуализации за Xen 4.3
- 321148 Необработена инструкция: PLI (Thumb 1, 2, 3)
- 321363 Необработена инструкция: SSAX (ARM + Thumb)
- 321364 Необработена инструкция: SXTAB16 (ARM + Thumb)
- 321466 Необработена инструкция: SHASX (ARM + Thumb)
- 321467 Необработена инструкция: SHSAX (ARM + Thumb)
- 321468 Необработена инструкция: SHSUB16 (ARM + Thumb)
- 321619 Необработена инструкция: SHSUB8 (ARM + Thumb)
- 321620 Необработена инструкция: UASX (ARM + Thumb)
- 321621 Необработена инструкция: USAX (ARM + Thumb)
- 321692 Необработена инструкция: UQADD16 (ARM + Thumb)
- 321693 Необработена инструкция: LDRSBT (Thumb)
- 321694 Необработена инструкция: UQASX (ARM + Thumb)
- 321696 Необработена инструкция: UQSAX (Thumb + ARM)
- 321697 Необработена инструкция: UHASX (ARM + Thumb)
- 321703 Необработена инструкция: UHSAX (ARM + Thumb)
- 321704 Необработена инструкция: REVSH (ARM + Thumb)
- 321730 Добави cg_diff и cg_merge човека страници
- 321738 Добави vgdb и valgrind-слушателски човека страници
- 321 814 == 315 545
- 321891 Необработена инструкция: LDRHT (Thumb)
- 321960 pthread_create () след alloca () причинява грешки невалиден стека запис
- 321969 ppc32 и ppc64 не поддържат [LF] setxattr
- 322254 Show threadname заедно с три пъти дневно, ако определен от прилагането
- 322294 Добави първоначална подкрепа за IBM Power ISA 2.07
- 322368 Assertion недостатъчност в wqthread_hijack под OS X 10.8
- 322563 Vex mips- & GT; IR: 0x70 0x83 0xF0 0x3A
- 322807 VALGRIND_PRINTF_BACKTRACE пише callstack да XML и текст към STDERR
- 322851 0bXXX двоичен буквалния синтаксис не е стандартна
- 323035 Необработена инструкция: LDRSHT (Thumb)
- 323036 необработено преподаване: SMMLS (ARM и Thumb)
- 323116 The memcheck / тестове / ppc64 / power_ISA2_05.c не успее да изгради [..]
- 323175 Необработена инструкция: SMLALD (ARM + Thumb)
- 323177 Необработена инструкция: SMLSLD (ARM + Thumb)
- 323 432 Обаждане pthread_cond_destroy () или pthread_mutex_destroy () [..]
- 323437 Фаза 2 подкрепа за IBM Power ISA 2.07
- 323713 mmxext Support (число SSE) подмножество на i386 (Athlon)
- 323803 Транзакции инструкции памет не се поддържат за мощност
- 323893 SSE3 не се предлага на AMD процесори в valgrind
- 323905 Условна фалшив положителен от Valgrind / DRD на тясно ()
- 323912 valgrind.h удар с глава, не е съвместима за mingw64
- 324047 Valgrind не поддържа [LDR, ST] {S} [B, H] инструкции T ARM
- 324149 helgrind: Когато pthread_cond_timedwait връща ETIMEDOUT [..]
- 324181 mmap не се занимава с MAP_32BIT
- 324227 memcheck фалшив положителен течове, когато нишка призовава изход + блок [..]
- 324 421 Подкрепа за fanotify API на ARM архитектура
- 324514 gdbserver следи CMD последователност изход поведение [..]
- 324518 ppc64: емулация на dcbt инструкции не се занимава с [..]
- 324546 никоя / тестове / ppc32 test_isa_2_07_part2 поиска -m64
- 324 582 Когато достъп е направено, за да освободи памет, докладва както разпределение [..]
- 324594 Fix препълване изчисления за мощността 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 DRD: Избягвайте фалшиви доклади расата от оптимизирани strlen () impls
- 326113 valgrind libvex hwcaps грешка на AMD64
- Ni-BZ Някои грешни опции за командния ред могат да бъдат игнорирани
- Ni-BZ пластир да позволи справедливо-sched на Android
- Ni-BZ информация за грешка за vgdb снимка поискано преди екзекуцията
- Ni-BZ същото като 303 624 (фиксиран в 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).
Коментари не е намерена