valgrind-3hive 0.12.0.tar.gz 怎么安装

liunx C 学习之路
获取Valgrind 包 可以先使用浏览器访问http://valgrind.org/downloads/查看当前版本
wget http://valgrind.org/downloads/valgrind-3.10.1.tar.bz2
将下载的文件解压
tar -jxvf valgrind-3.10.1.tar.bz2
安装和配置
./autogen.sh
./configure
make install
& 查看使用参数(valgrind --help )
usage: valgrind [options] prog-and-args
tool-selection option, with default in [ ]:
& & --tool=&name& & & & & & & use the Valgrind tool named &name& [memcheck]
& basic user options for all Valgrind tools, with defaults in [ ]:
& & -h --help & & & & & & & & show this message
& & --help-debug & & & & & & &show this message, plus debugging options
& & --version & & & & & & & & show version
& & -q --quiet & & & & & & & & only print error msgs
& & -v --verbose & & & & & & &be more verbose -- show misc extra info
& & --trace-children=no|yes & Valgrind-ise child processes (follow execve)? [no]
& & --trace-children-skip=patt1,patt2,... & &specifies a list of executables
& & & & & & & & & & & & & & & that --trace-children=yes should not trace into
& & --trace-children-skip-by-arg=patt1,patt2,... & same as --trace-children-skip=
& & & & & & & & & & & & & & & but check the argv[] entries for children, rather
& & & & & & & & & & & & & & & than the exe name, to make a follow/no-follow decision
& & --child-silent-after-fork=no|yes omit child output between fork & exec? [no]
& & --vgdb=no|yes|full & & & &activate gdbserver? [yes]
& & & & & & & & & & & & & & & full is slower but provides precise watchpoint/step
& & --vgdb-error=&number& & & invoke gdbserver after &number& errors []
& & & & & & & & & & & & & & & to get started quickly, use --vgdb-error=0
& & & & & & & & & & & & & & & and follow the on-screen directions
& & --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]
& & & & &where event is one of:
& & & & & &startup exit valgrindabexit all none
& & --track-fds=no|yes & & & &track open file descriptors? [no]
& & --time-stamp=no|yes & & & add timestamps to log messages? [no]
& & --log-fd=&number& & & & & log messages to file descriptor [2=stderr]
& & --log-file=&file& & & & & log messages to &file&
& & --log-socket=ipaddr:port &log messages to socket ipaddr:port
& user options for Valgrind tools that report errors:
& & --xml=yes & & & & & & & & emit error output in XML (some tools only)
& & --xml-fd=&number& & & & & XML output to file descriptor
& & --xml-file=&file& & & & & XML output to &file&
& & --xml-socket=ipaddr:port &XML output to socket ipaddr:port
& & --xml-user-comment=STR & &copy STR verbatim into XML output
& & --demangle=no|yes & & & & automatically demangle C++ names? [yes]
& & --num-callers=&number& & &show &number& callers in stack traces [12]
& & --error-limit=no|yes & & &stop showing new errors if too many? [yes]
& & --error-exitcode=&number& exit code to return if errors found [0=disable]
& & --show-below-main=no|yes &continue stack traces below main() [no]
& & --default-suppressions=yes|no
& & & & & & & & & & & & & & & load default suppressions [yes]
& & --suppressions=&filename& suppress errors described in &filename&
& & --gen-suppressions=no|yes|all & &print suppressions for errors? [no]
& & --db-attach=no|yes & & & &start debugger when errors detected? [no]
& & & & & & & & & & & & & & & Note: deprecated feature
& & --db-command=&command& & &command to start debugger [/no/gdb/was/found/at/configure/time -nw %f %p]
& & --input-fd=&number& & & & file descriptor for input [0=stdin]
& & --dsymutil=no|yes & & & & run dsymutil on Mac OS X when helpful? [no]
& & --max-stackframe=&number& assume stack switch for SP changes larger
& & & & & & & & & & & & & & & than &number& bytes [2000000]
& & --main-stacksize=&number& set size of main thread's stack (in bytes)
& & & & & & & & & & & & & & & [min(max(current 'ulimit' value,1MB),16MB)]
& user options for Valgrind tools that replace malloc:
& & --alignment=&number& & & &set minimum alignment of heap allocations [16]
& & --redzone-size=&number& & set minimum size of redzones added before/after
& & & & & & & & & & & & & & & heap blocks (in bytes). [16]
& uncommon user options for all Valgrind tools:
& & --fullpath-after= & & & & (with nothing after the '=')
& & & & & & & & & & & & & & & show full source paths in call stacks
& & --fullpath-after=string & like --fullpath-after=, but only show the
& & & & & & & & & & & & & & & part of the path after 'string'. &Allows removal
& & & & & & & & & & & & & & & of path prefixes. &Use this flag multiple times
& & & & & & & & & & & & & & & to specify a set of prefixes to remove.
& & --extra-debuginfo-path=path & &absolute path to search for additional
& & & & & & & & & & & & & & & debug symbols, in addition to existing default
& & & & & & & & & & & & & & & well known search paths.
& & --debuginfo-server=ipaddr:port & &also query this server
& & & & & & & & & & & & & & & (valgrind-di-server) for debug symbols
& & --allow-mismatched-debuginfo=no|yes &[no]
& & & & & & & & & & & & & & & for the above two flags only, accept debuginfo
& & & & & & & & & & & & & & & objects that don't &match& the main object
& & --smc-check=none|stack|all|all-non-file [stack]
& & & & & & & & & & & & & & & checks for self-modifying code: none, only for
& & & & & & & & & & & & & & & code found in stacks, for all code, or for all
& & & & & & & & & & & & & & & code except that from file-backed mappings
& & --read-inline-info=yes|no read debug info about inlined function calls
& & & & & & & & & & & & & & & and use it to do better stack traces. &[yes]
& & & & & & & & & & & & & & & on Linux/Android for Memcheck/Helgrind/DRD
& & & & & & & & & & & & & & & only. &[no] for all other tools and platforms.
& & --read-var-info=yes|no & &read debug info on stack and global variables
& & & & & & & & & & & & & & & and use it to print better error messages in
& & & & & & & & & & & & & & & tools that make use of it (Memcheck, Helgrind,
& & & & & & & & & & & & & & & DRD) [no]
& & --vgdb-poll=&number& & & &gdbserver poll max every &number& basic blocks [5000]&
& & --vgdb-shadow-registers=no|yes & let gdb see the shadow registers [no]
& & --vgdb-prefix=&prefix& & &prefix for vgdb FIFOs [/tmp/vgdb-pipe]
& & --run-libc-freeres=no|yes free up glibc memory at exit on Linux? [yes]
& & --sim-hints=hint1,hint2,... &activate unusual sim behaviours [none]&
& & & & &where hint is one of:
& & & & & &lax-ioctls fuse-compatible enable-outer
& & & & & &no-inner-prefix no-nptl-pthread-stackcache none
& & --fair-sched=no|yes|try & schedule threads fairly on multicore systems [no]
& & --kernel-variant=variant1,variant2,...
& & & & &handle non-standard kernel variants [none]
& & & & &where variant is one of:
& & & & & &bproc android-no-hw-tls
& & & & & &android-gpu-sgx5xx android-gpu-adreno3xx none
& & --merge-recursive-frames=&number& &merge frames between identical
& & & & & &program counters in max &number& frames) [0]
& & --num-transtab-sectors=&number& size of translated code cache [16]
& & & & & &more sectors may increase performance, but use more memory.
& & --aspace-minaddr=0xPP & & avoid mapping memory below 0xPP [guessed]
& & --show-emwarns=no|yes & & show warnings about emulation limits? [no]
& & --require-text-symbol=:sonamepattern:symbolpattern & &abort run if the
& & & & & & & & & & & & & & & stated shared object doesn't have the stated
& & & & & & & & & & & & & & & text symbol. &Patterns can contain ? and *.
& & --soname-synonyms=syn1=pattern1,syn2=pattern2,... synonym soname
& & & & & & & specify patterns for function wrapping or replacement.
& & & & & & & To use a non-libc malloc library that is
& & & & & & & & & in the main exe: &--soname-synonyms=somalloc=NONE
& & & & & & & & & in libxyzzy.so: & --soname-synonyms=somalloc=libxyzzy.so
& & --sigill-diagnostics=yes|no &warn about illegal instructions? [yes]
& & --unw-stack-scan-thresh=&number& & Enable stack-scan unwind if fewer
& & & & & & & & & than &number& good frames found &[0, meaning &disabled&]
& & & & & & & & & NOTE: stack scanning is only available on arm-linux.
& & --unw-stack-scan-frames=&number& & Max number of frames that can be
& & & & & & & & & recovered by stack scanning [5]
& user options for Memcheck:
& & --leak-check=no|summary|full & & search for memory leaks at exit? &[summary]
& & --leak-resolution=low|med|high & differentiation of leak stack traces [high]
& & --show-leak-kinds=kind1,kind2,.. which leak kinds to show?
& & & & & & & & & & & & & & & & & & & & & & [definite,possible]
& & --errors-for-leak-kinds=kind1,kind2,.. &which leak kinds are errors?
& & & & & & & & & & & & & & & & & & & & & & [definite,possible]
& & & & where kind is one of:
& & & & & definite indirect possible reachable all none
& & --leak-check-heuristics=heur1,heur2,... which heuristics to use for
& & & & improving leak search false positive [none]
& & & & where heur is one of:
& & & & & stdstring length64 newarray multipleinheritance all none
& & --show-reachable=yes & & & & & & same as --show-leak-kinds=all
& & --show-reachable=no --show-possibly-lost=yes
& & & & & & & & & & & & & & & & & & &same as --show-leak-kinds=definite,possible
& & --show-reachable=no --show-possibly-lost=no
& & & & & & & & & & & & & & & & & & &same as --show-leak-kinds=definite
& & --undef-value-errors=no|yes & & &check for undefined value errors [yes]
& & --track-origins=no|yes & & & & & show origins of undefined values? [no]
& & --partial-loads-ok=no|yes & & & &too
see manual [no]
& & --freelist-vol=&number& & & & & &volume of freed blocks queue & & []
& & --freelist-big-blocks=&number& & releases first blocks with size&= [1000000]
& & --workaround-gcc296-bugs=no|yes &self explanatory [no]
& & --ignore-ranges=0xPP-0xQQ[,0xRR-0xSS] & assume given addresses are OK
& & --malloc-fill=&hexnumber& & & & &fill malloc'd areas with given value
& & --free-fill=&hexnumber& & & & & &fill free'd areas with given value
& & --keep-stacktraces=alloc|free|alloc-and-free|alloc-then-free|none
& & & & stack trace(s) to keep for malloc'd/free'd areas & & & [alloc-then-free]
& & --show-mismatched-frees=no|yes & show frees that don't match the allocator? [yes]
第五步测试程序:注意:需要当前用户是否有执行权限
valgrind --tool=memcheck --leak-check=full --log-file=log &./main 使用对用的参数对已经编译好的C程序进行测试
分析结果上面的配置会在当前目录生成一个log的日志文件 查看日志文件就行了
==24809== Memcheck, a memory error detector
==24809== Copyright (C) , and GNU GPL'd, by Julian Seward et al.
==24809== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==24809== Command: ./main
==24809== Parent PID: 7060
==24809== HEAP SUMMARY:
==24809== & & in use at exit: 0 bytes in 0 blocks
==24809== & total heap usage: 29 allocs, 29 frees, 1,193 bytes allocated
==24809== All heap blocks were freed -- no leaks are possible
==24809== For counts of detected and suppressed errors, rerun with: -v
==24809== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:334次
排名:千里之外valgrind简介以及在ARM上交叉编译运行
valgrind简介以及在ARM上交叉编译运行:Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。
Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O&Reilly开源代码奖。
Valgrind遵守GNU通用公共许可证条款,是一款自由软件。
关于valgrind的具体使用网上有很多。这里记录一下在ARM上的交叉编译及使用过程中的一些问题。
1、下载及编译准备
wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2
tar xvf valgrind-3.12.0.tar.bz2
cd valgrind-3.12.0
apt-get install automake
./autogen.s
2、交叉编译
修改configure: armv7*) 改成 armv7*|arm)
./configure --host=arm-linux CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp CXX=arm-none-linux-gnueabi-g++ --prefix=/home/dcj/valgrind
make install
/home/dcj/valgrind目录下生成好的valgrind,包括4个文件夹:bin,include,lib,share
&prefix=/home/dcj/valgrind指定的目录要与开发板上放置的目录一致,不然运行valgrind时可能会出现&valgrind: failed to start tool &memcheck& for platform &arm-linux&: No such file or directory&错误。
把安装目录下的文件valgrind目录通过winscp复制到目标板上的/home/dcj/目录下,修改bin目录下的执行权限。
chrom -R +x /home/dcj/valgrind/bin/
此时运行bin目录下的valgrind会出现如下错误提示:
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': Permission denied
解决方法:
export VALGRIND_LIB=&/home/dcj/valgrind/lib/valgrind&
chmod -R +x /home/dcj/valgrind/lib/valgrind/
就可以对ARM上的代码进行内存泄露等检查。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 isl 0.12.2.tar.bz2 的文章

 

随机推荐