OLDER NEWS
- Valgrind is no longer built by default as a position-independent
executable (PIE), as this caused too many problems.
Without PIE enabled, AMD64 programs will only be able to access 2GB of
address space.
We will fix this eventually, but not for the moment.
Use --enable-pie at configure-time to turn this on.
- Support for programs that use stack-switching has been improved.
Use
the --max-stackframe flag for simple cases, and the
VALGRIND_STACK_REGISTER, VALGRIND_STACK_DEREGISTER and
VALGRIND_STACK_CHANGE client requests for trickier cases.
- Support for programs that use self-modifying code has been improved,
in particular programs that put temporary code fragments on the stack.
This helps for C programs compiled with GCC that use nested functions,
and also Ada programs.
This is controlled with the --smc-check
flag, although the default setting should work in most cases.
- Output can now be printed in XML format.
This should make it easier
for tools such as GUI front-ends and automated error-processing
schemes to use Valgrind output as input.
The --xml flag controls this.
As part of this change, ELF directory information is read from executables,
so absolute source file paths are available if needed.
- Programs that allocate many heap blocks may run faster, due to
improvements in certain data structures.
- Addrcheck is currently not working.
We hope to get it working again
soon.
Helgrind is still not working, as was the case for the 2.4.0
release.
- The JITter has been completely rewritten, and is now in a separate
library, called Vex.
This enabled a lot of the user-visible changes,
such as new architecture support.
The new JIT unfortunately translates
more slowly than the old one, so programs may take longer to start.
We believe the code quality is produces is about the same, so once
started, programs should run at about the same speed.
Feedback about
this would be useful.
On the plus side, Vex and hence Memcheck tracks value flow properly
through floating point and vector registers, something the 2.X line
could not do.
That means that Memcheck is much more likely to be
usably accurate on vectorised code.
- There is a subtle change to the way exiting of threaded programs
is handled.
In 3.0, Valgrind’s final diagnostic output (leak check,
etc) is not printed until the last thread exits.
If the last thread
to exit was not the original thread which started the program, any
other process wait()-ing on this one to exit may conclude it has
finished before the diagnostic output is printed.
This may not be
what you expect.
2.X had a different scheme which avoided this
problem, but caused deadlocks under obscure circumstances, so we
54
Содержание Software
Страница 176: ...Valgrind FAQ Release 3 8 0 10 August 2012 Copyright 2000 2012 Valgrind Developers Email valgrind valgrind org ...
Страница 177: ...Valgrind FAQ Table of Contents Valgrind Frequently Asked Questions 1 ii ...
Страница 302: ...README mips based on newer GCC versions if possible 95 ...
Страница 303: ...GNU Licenses ...
Страница 304: ...GNU Licenses Table of Contents 1 The GNU General Public License 1 2 The GNU Free Documentation License 8 ii ...