blob: 664029c58fb2f6205ed7cff258ff69116b85c448 [file] [log] [blame]
Building and not installing it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To run Valgrind without having to install it, run coregrind/valgrind
with the VALGRINDLIB environment variable set, where <dir> is the root
of the source tree (and must be an absolute path). Eg:
VALGRINDLIB=~/grind/head4/.in_place ~/grind/head4/coregrind/valgrind
This allows you to compile and run with "make" instead of "make install",
saving you time.
I recommend compiling with "make --quiet" to further reduce the amount of
output spewed out during compilation, letting you actually see any errors,
warnings, etc.
Running the regression tests
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To build and run all the regression tests, run "make [--quiet] regtest".
To run a subset of the regression tests, execute:
perl tests/vg_regtest <name>
where <name> is a directory (all tests within will be run) or a single
.vgtest test file, or the name of a program which has a like-named .vgtest
file. Eg:
perl tests/vg_regtest memcheck
perl tests/vg_regtest memcheck/tests/badfree.vgtest
perl tests/vg_regtest memcheck/tests/badfree
Debugging Valgrind with GDB
~~~~~~~~~~~~~~~~~~~~~~~~~~~
To debug stage 1 just run it under GDB in the normal way.
To debug Valgrind proper (stage 2) with GDB, start Valgrind like this:
valgrind --tool=none --wait-for-gdb=yes <prog>
Then start gdb like this in another terminal:
gdb /usr/lib/valgrind/stage2 <pid>
Where <pid> is the pid valgrind printed. Then set whatever breakpoints
you want and do this in gdb:
jump *$eip