Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Профильдеу, жадтағы қателерді жою және жад ақауларын анықтауға арналған бағдарламалық құрал
Programming tool for profiling, memory debugging and memory leak detection
software
Valgrind (/v/æ/l/ɡ/r/ɪ/n/d/) – жадтағы қателерді жою, жад ақауларын анықтау және профильдеуге арналған бағдарламалық құрал. Valgrind бастапқыда x86 Linux жүйесі үшін ақысыз лицензияланған жадты жөндеу құралы ретінде жасалған, бірақ содан бері тексерушілер мен профильдер сияқты динамикалық талдау құралдарын жасауға арналған жалпы платформаға айналды.
Valgrind ('/v//æ//l//ɡ//r//ɪ//n//d/) is a programming tool for memory debugging, memory leak detection, and profiling. Valgrind was originally designed to be a freely licensed memory debugging tool for Linux on x86, but has since evolved to become a generic framework for creating dynamic analysis tools such as checkers and profilers.
Шолу
Valgrind – бұл, негізінен, тек уақытында компиляциялау әдістерін қолданатын виртуалды машина, оның ішінде динамикалық қайта компиляциялау. Бастапқы бағдарламаның ешқайсысы тікелей хост-процессорда орындалмайды. Оның орнына, Valgrind бағдарламаны алдымен уақытша, қарапайым түрге аударады, ол процессорға бейтарап, статикалық бір тапсырмаға негізделген аралық өрнек (IR) болып табылады. Аралық өрнекке (IR) аударғаннан кейін, құрал (төменде қараңыз) IR-де қалаған өзгерістерін жасауға болады, ал Valgrind IR-ді машиналық кодқа қайта аударғаннан кейін ғана хост-процессор оны орындай алады. Valgrind екілік кодты хост және мақсатты (немесе симуляцияланған) процессорларда, бір архитектурада жұмыс істеу үшін қайта құрастырады. Сондай-ақ, Valgrind-те жұмыс істеп жатқан мақсатты бағдарламаны жөндеуге мүмкіндік беретін GDB интерфейсі және Valgrind құралынан түрлі ақпарат алуға арналған "монитор командалары" бар. Мұндай түрлендірулерде (әдетте, құрал қосатын код) өнімділіктің айтарлықтай бөлігі жоғалады; әдетте, Valgrind және "жоқ" құралымен (IR-ге ештеңе өзгеріс енгізбейтін) орындалатын код, қалыпты бағдарлама жылдамдығының 20%-дан 25%-ымен жұмыс істейді.
Valgrind is in essence a virtual machine using just in time compilation techniques, including dynamic recompilation. Nothing from the original program ever gets run directly on the host processor. Instead, Valgrind first translates the program into a temporary, simpler form called intermediate representation (IR), which is a processor neutral, static single assignment form based form. After the conversion, a tool (see below) is free to do whatever transformations it would like on the IR, before Valgrind translates the IR back into machine code and lets the host processor run it. Valgrind recompiles binary code to run on host and target (or simulated) CPUs of the same architecture. It also includes a GDB stub to allow debugging of the target program as it runs in Valgrind, with "monitor commands" that allow querying the Valgrind tool for various information. A considerable amount of performance is lost in these transformations (and usually, the code the tool inserts); usually, code run with Valgrind and the "none" tool (which does nothing to the IR) runs at 20% to 25% of the speed of the normal program.
Қолданылатын платформалар
3.4.0 нұсқасынан бастап Valgrind Linux жүйесінде x86, x86 64 және PowerPC процессорларын қолдайды. Linux жүйесінде ARMv7 қолдауы (мысалы, кейбір смартфондарда қолданылады) 3.6.0 нұсқасында қосылды. Solaris жүйесіне қолдау 3.11.0 нұсқасында, ал FreeBSD x86 және amd64 жүйелеріне қолдау 3.18.0 нұсқасында қосылды. FreeBSD aarch64 жүйесіне қолдау 3.23.0 нұсқасында пайда болады. OpenBSD және NetBSD сияқты Unix жүйелеріне ұқсас басқа платформаларға ресми емес порттар бар. 3.7.0 нұсқасынан бастап ARM/Android платформасын қолдау қосылды. Дамылған кезде (шығарылмас бұрын) жоба Heimdall деп аталды; бірақ бұл атау қауіпсіздік пакетімен қақтығысуға мүмкіндік бермейтін еді. Valgrind-тің бастапқы авторы Джулиан Севард, ол 2006 жылы Valgrind-тегі жұмысы үшін Google O'Reilly Open Source Award сыйлығын жеңіп алды. Николас Недеркотт, Барт Ван Асш, Флориан Кром, Том Хьюз, Филипп Варокьерс, Марк Вилаард, Пол Флойд, Петар Йованович, Карл Лав, Серион Армор Браун және Иво Райзер сияқты көптеген адамдар да маңызды үлес қосты. Оны Linux негізіндегі бірнеше жобалар пайдаланады.
As of version 3.4.0, Valgrind supports Linux on x86, x86 64 and PowerPC. Support for Linux on ARMv7 (used for example in certain smartphones) was added in version 3.6.0. Support for Solaris was added in version 3.11.0. Support for FreeBSD x86 and amd64 was added in version 3.18.0. Support for FreeBSD aarch64 will be in version 3.23.0. There are unofficial ports to other Unix like platforms (like OpenBSD, and NetBSD). From version 3.7.0 the ARM/Android platform support was added. During development (before release) the project was named Heimdall; however, the name would have conflicted with a security package. The original author of Valgrind is Julian Seward, who in 2006 won a Google O'Reilly Open Source Award for his work on Valgrind. Several others have also made significant contributions, including Nicholas Nethercote, Bart Van Assche, Florian Krohm, Tom Hughes, Philippe Waroquiers, Mark Wielaard, Paul Floyd, Petar Jovanovic, Carl Love, Cerion Armour Brown and Ivo Raisr. It is used by a number of Linux based projects.