UbuntuWiki:Valgrind
文章出处: |
{{#if: | {{{2}}} | https://wiki.ubuntu.com/Valgrind }} |
点击翻译: |
English {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/af | • {{#if: UbuntuWiki:Valgrind|Afrikaans| [[::UbuntuWiki:Valgrind/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ar | • {{#if: UbuntuWiki:Valgrind|العربية| [[::UbuntuWiki:Valgrind/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/az | • {{#if: UbuntuWiki:Valgrind|azərbaycanca| [[::UbuntuWiki:Valgrind/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/bcc | • {{#if: UbuntuWiki:Valgrind|جهلسری بلوچی| [[::UbuntuWiki:Valgrind/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/bg | • {{#if: UbuntuWiki:Valgrind|български| [[::UbuntuWiki:Valgrind/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/br | • {{#if: UbuntuWiki:Valgrind|brezhoneg| [[::UbuntuWiki:Valgrind/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ca | • {{#if: UbuntuWiki:Valgrind|català| [[::UbuntuWiki:Valgrind/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/cs | • {{#if: UbuntuWiki:Valgrind|čeština| [[::UbuntuWiki:Valgrind/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/de | • {{#if: UbuntuWiki:Valgrind|Deutsch| [[::UbuntuWiki:Valgrind/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/el | • {{#if: UbuntuWiki:Valgrind|Ελληνικά| [[::UbuntuWiki:Valgrind/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/es | • {{#if: UbuntuWiki:Valgrind|español| [[::UbuntuWiki:Valgrind/es|español]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/fa | • {{#if: UbuntuWiki:Valgrind|فارسی| [[::UbuntuWiki:Valgrind/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/fi | • {{#if: UbuntuWiki:Valgrind|suomi| [[::UbuntuWiki:Valgrind/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/fr | • {{#if: UbuntuWiki:Valgrind|français| [[::UbuntuWiki:Valgrind/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/gu | • {{#if: UbuntuWiki:Valgrind|ગુજરાતી| [[::UbuntuWiki:Valgrind/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/he | • {{#if: UbuntuWiki:Valgrind|עברית| [[::UbuntuWiki:Valgrind/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/hu | • {{#if: UbuntuWiki:Valgrind|magyar| [[::UbuntuWiki:Valgrind/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/id | • {{#if: UbuntuWiki:Valgrind|Bahasa Indonesia| [[::UbuntuWiki:Valgrind/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/it | • {{#if: UbuntuWiki:Valgrind|italiano| [[::UbuntuWiki:Valgrind/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ja | • {{#if: UbuntuWiki:Valgrind|日本語| [[::UbuntuWiki:Valgrind/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ko | • {{#if: UbuntuWiki:Valgrind|한국어| [[::UbuntuWiki:Valgrind/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ksh | • {{#if: UbuntuWiki:Valgrind|Ripoarisch| [[::UbuntuWiki:Valgrind/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/mr | • {{#if: UbuntuWiki:Valgrind|मराठी| [[::UbuntuWiki:Valgrind/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ms | • {{#if: UbuntuWiki:Valgrind|Bahasa Melayu| [[::UbuntuWiki:Valgrind/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/nl | • {{#if: UbuntuWiki:Valgrind|Nederlands| [[::UbuntuWiki:Valgrind/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/no | • {{#if: UbuntuWiki:Valgrind|norsk| [[::UbuntuWiki:Valgrind/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/oc | • {{#if: UbuntuWiki:Valgrind|occitan| [[::UbuntuWiki:Valgrind/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/pl | • {{#if: UbuntuWiki:Valgrind|polski| [[::UbuntuWiki:Valgrind/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/pt | • {{#if: UbuntuWiki:Valgrind|português| [[::UbuntuWiki:Valgrind/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ro | • {{#if: UbuntuWiki:Valgrind|română| [[::UbuntuWiki:Valgrind/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/ru | • {{#if: UbuntuWiki:Valgrind|русский| [[::UbuntuWiki:Valgrind/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/si | • {{#if: UbuntuWiki:Valgrind|සිංහල| [[::UbuntuWiki:Valgrind/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/sq | • {{#if: UbuntuWiki:Valgrind|shqip| [[::UbuntuWiki:Valgrind/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/sr | • {{#if: UbuntuWiki:Valgrind|српски / srpski| [[::UbuntuWiki:Valgrind/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/sv | • {{#if: UbuntuWiki:Valgrind|svenska| [[::UbuntuWiki:Valgrind/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/th | • {{#if: UbuntuWiki:Valgrind|ไทย| [[::UbuntuWiki:Valgrind/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/tr | • {{#if: UbuntuWiki:Valgrind|Türkçe| [[::UbuntuWiki:Valgrind/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/vi | • {{#if: UbuntuWiki:Valgrind|Tiếng Việt| [[::UbuntuWiki:Valgrind/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/yue | • {{#if: UbuntuWiki:Valgrind|粵語| [[::UbuntuWiki:Valgrind/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/zh | • {{#if: UbuntuWiki:Valgrind|中文| [[::UbuntuWiki:Valgrind/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/zh-hans | • {{#if: UbuntuWiki:Valgrind|中文(简体)| [[::UbuntuWiki:Valgrind/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuWiki:Valgrind | UbuntuWiki:Valgrind | {{#if: | :}}UbuntuWiki:Valgrind}}/zh-hant | • {{#if: UbuntuWiki:Valgrind|中文(繁體)| [[::UbuntuWiki:Valgrind/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuWiki:Valgrind|:UbuntuWiki:Valgrind|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :UbuntuWiki:Valgrind/zh | | {{#ifexist: UbuntuWiki:Valgrind/zh | | {{#ifeq: {{#titleparts:UbuntuWiki:Valgrind|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:UbuntuWiki:Valgrind|1|-1|}} | zh | | }}
Valgrind is a suite of tools for debugging and profiling programs. There are three tools: a memory error detector, a time profiler, and a space profiler.
For debugging purposes, the memory error detector is a handy tool.
Memory error detection
The most important of these is the memory error detector, which tracks the usage of every single bit in a program, and warns if there's something suspicious. Valgrind can detect if memory is used before it has a value, memory is leaked, or memory is used twice.
This makes it ideal for tracking down segmentation faults, bus errors, and general memory leaks.
Please ensure you have packages with debug symbols installed. You can do this by following the instructions at DebuggingProgramCrash.
- Make sure Valgrind is installed.
sudo apt-get install valgrind
- Remove any old Valgrind logs:
rm valgrind.log.*
- Start the program under control of `memcheck`:
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=valgrind.log <program> <arguments>
- The program will start. Perform any actions necessary to reproduce the crash
- Package up the log files:
tar -zcf valgrind-logs-<program>.tar.gz valgrind.log.*
- Attach the complete output from Valgrind, contained in valgrind-logs-<program>.tar.gz, in your bug report.