diff options
author | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2007-12-02 02:08:17 +0000 |
---|---|---|
committer | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2007-12-02 02:08:17 +0000 |
commit | cb2288bf6048c070255a7e85176f4049efc990ba (patch) | |
tree | 115092489457b3376e9d2110b07f5f0d9a68a926 /NEWS | |
parent | d533990a5e3d7f9fa0bde9644b8047111ee32ee0 (diff) | |
download | valgrind-cb2288bf6048c070255a7e85176f4049efc990ba.tar.gz |
Update release docs.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7265 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 277 |
1 files changed, 200 insertions, 77 deletions
@@ -1,81 +1,126 @@ -Release 3.3.0 (XX XXX 2007) -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -3.3.0 is a feature release with ... - -XXX: AIX support (ppc32 and ppc64?) - -XXX: -* modestly restructured/rationalised documentation -* support for latest toolchains/libs: gcc-4.3, glibc-2.7 -* many bugs fixed, as usual -* scalability improvements (for v. large programs); some modest - performance improvements - -Several large improvements to existing tools have been implemented. -- Helgrind has been completely overhauled and now works for the first time - since Valgrind 2.2.0. [XXX: ...] +Release 3.3.0 (7 December 2007) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Massif has been completely overhauled. Instead of measuring space-time - usage -- which wasn't always useful and many people found confusing -- it - now measures space usage at various points in the execution, including the - point of peak memory allocation. Its output format has also changed: - instead of producing PostScript graphs and HTML text, it produces a single - text output (via the new 'ms_print' script) that contains both a graph and - the old textual information, but in a more compact and readable form. - Finally, the new version should be more reliable than the old one, as it - has been tested more thoroughly. +3.3.0 is a feature release with many significant improvements and the +usual collection of bug fixes. This release supports X86/Linux, +AMD64/Linux, PPC32/Linux and PPC64/Linux. Support for recent distros +(using gcc 4.3, glibc 2.6 and 2.7) has been added. + +The main excitement in 3.3.0 is new and improved tools. Helgrind +works again, Massif has been completely overhauled and much improved, +Cachegrind now does branch-misprediction profiling, and a new category +of experimental tools has been created, containing two new tools: +Omega and DRD. There are many other smaller improvements. In detail: + +- Helgrind has been completely overhauled and works for the first time + since Valgrind 2.2.0. Supported functionality is: detection of + misuses of the POSIX PThreads API, detection of potential deadlocks + resulting from cyclic lock dependencies, and detection of data + races. Compared to the 2.2.0 Helgrind, the race detection algorithm + has some significant improvements aimed at reducing the false error + rate. Handling of various kinds of corner cases has been improved. + Efforts have been made to make the error messages easier to + understand. Extensive documentation is provided. + +- Massif has been completely overhauled. Instead of measuring + space-time usage -- which wasn't always useful and many people found + confusing -- it now measures space usage at various points in the + execution, including the point of peak memory allocation. Its + output format has also changed: instead of producing PostScript + graphs and HTML text, it produces a single text output (via the new + 'ms_print' script) that contains both a graph and the old textual + information, but in a more compact and readable form. Finally, the + new version should be more reliable than the old one, as it has been + tested more thoroughly. - Cachegrind has been extended to do branch-misprediction profiling. Both conditional and indirect branches are profiled. The default behaviour of Cachegrind is unchanged. To use the new functionality, give the option --branch-sim=yes. -Two new tools have also been added. These are "experimental tools", which -means that they may not work as well as the standard tools, but they are -included because some people will find them useful. The notion of -experimental tools was added in order to provide a way for tools to get -wider exposure among Valgrind users. These tools have a "exp-" prefix -attached to their names to indicate their experimental nature. - -- exp-Omega [XXX ...] - -- exp-DRD [XXX ...] - -Other user-visible changes: - -- The --log-file-exactly and --log-file-qualifier options have been removed. - To make up for this --log-file option has been made more powerful and - flexible; it can now accept a %p format specifier, which is replaced with - the process ID, and the a %q{FOO} format specifier, which is replaced with - the contents of the environment variable $FOO. - -- [XXX: --child-silent-after-fork...] - -- There are new --cachegrind-out-file, --callgrind-out-file and - --massif-out-file options, which control the names of the output files - produced by Cachegrind, Callgrind and Massif. They accept the same %p and - %q format specifiers that --log-file accepts. --callgrind-out-file - replaces Callgrind's old --base option. - -- Cachegrind's 'cg_annotate' script no longer uses the --<pid> option to - specify the output file. Instead, the first non-option argument is taken - to be the name of the output file, and any subsequent non-option arguments - are taken to be the names of source files to be annotated. This change - was necessary due to the addition of the --cachegrind-out-file option. - 'callgrind_annotate' already had this behaviour. - -- Cachegrind now uses directory names where possible in its output files. - This means that the -I option to 'cg_annotate' should not be needed in - most cases. It also means it can correctly handle the case where two - source files in different directories have the same name. - The same is true for Callgrind and callgrind_annotate, respectively. - The benefits also apply to KCachegrind, without any further change - (ie. in most cases there is no configuration of source directories needed). - -- A new suppression kind has been introduced: "Jump". This is for - suppressing jump-to-invalid-address errors. Previously you had to use an - "Addr1" suppression, which didn't make much sense. +- A new category of "experimental tools" has been created. Such tools + may not work as well as the standard tools, but are included because + some people will find them useful, and because exposure to a wider + user group provides tool authors with more end-user feedback. These + tools have a "exp-" prefix attached to their names to indicate their + experimental nature. Currently there are two experimental tools: + + * exp-Omega: an instantaneous leak detector. See + exp-omega/docs/omega_introduction.txt. + + * exp-DRD: a data race detector based on the happens-before + relation. See exp-drd/TODO.txt. + +- Scalability improvements for very large programs, particularly those + which have a million or more malloc'd blocks in use at once. These + improvements mostly affect Memcheck. Memcheck is also up to 10% + faster for all programs, with x86-linux seeing the largest + improvement. + +- Works well on the latest Linux distros. Has been tested on Fedora + Core 8 (x86, amd64, ppc32, ppc64) and openSUSE 10.3. glibc 2.6 and + 2.7 are supported. gcc-4.3 (in its current pre-release state) is + supported. At the same time, 3.3.0 retains support for older + distros. + +- The documentation has been modestly reorganised with the aim of + making it easier to find information on common-usage scenarios. + Some advanced material has been moved into a new chapter in the main + manual, so as to unclutter the main flow, and other tidying up has + been done. + +- There is experimental support for AIX 5.3, both 32-bit and 64-bit + processes. You need to be running a 64-bit kernel to use Valgrind + on a 64-bit executable. + +- There have been some changes to command line options, which may + affect you: + + * --log-file-exactly and + --log-file-qualifier options have been removed. + + To make up for this --log-file option has been made more powerful. + It now accepts a %p format specifier, which is replaced with the + process ID, and a %q{FOO} format specifier, which is replaced with + the contents of the environment variable FOO. + + * --child-silent-after-fork=yes|no [no] + + Causes Valgrind to not show any debugging or logging output for + the child process resulting from a fork() call. This can make the + output less confusing (although more misleading) when dealing with + processes that create children. + + * --cachegrind-out-file, --callgrind-out-file and --massif-out-file + + These control the names of the output files produced by + Cachegrind, Callgrind and Massif. They accept the same %p and %q + format specifiers that --log-file accepts. --callgrind-out-file + replaces Callgrind's old --base option. + + * Cachegrind's 'cg_annotate' script no longer uses the --<pid> + option to specify the output file. Instead, the first non-option + argument is taken to be the name of the output file, and any + subsequent non-option arguments are taken to be the names of + source files to be annotated. + + * Cachegrind and Callgrind now use directory names where possible in + their output files. This means that the -I option to + 'cg_annotate' and 'callgrind_annotate' should not be needed in + most cases. It also means they can correctly handle the case + where two source files in different directories have the same + name. + +- Memcheck offers a new suppression kind: "Jump". This is for + suppressing jump-to-invalid-address errors. Previously you had to + use an "Addr1" suppression, which didn't make much sense. + +- Memcheck has new flags --malloc-fill=<hexnum> and + --free-fill=<hexnum> which free malloc'd / free'd areas with the + specified byte. This can help shake out obscure memory corruption + problems. The definedness and addressibility of these areas is + unchanged -- only the contents are affected. - The behaviour of Memcheck's client requests VALGRIND_GET_VBITS and VALGRIND_SET_VBITS have changed slightly. They no longer issue @@ -88,16 +133,94 @@ Other user-visible changes: traces. Second, a new option --trace-superblocks has been added, which shows the addresses of superblocks (code blocks) as they are executed. +- The following bugs have been fixed. Note that "n-i-bz" stands for + "not in bugzilla" -- that is, a bug that was reported to us but + never got a bugzilla entry. We encourage you to file bugs in + bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than + mailing the developers (or mailing lists) directly. + + n-i-bz x86_linux_REDIR_FOR_index() broken + n-i-bz guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed. + n-i-bz Support x86 INT insn (INT (0xCD) 0x40 - 0x43) + n-i-bz Add sys_utimensat system call for Linux x86 platform + 79844 Helgrind complains about race condition which does not exist + 82871 Massif output function names too short + 89061 Massif: ms_main.c:485 (get_XCon): Assertion `xpt->max_chi...' + 92615 Write output from Massif at crash + 95483 massif feature request: include peak allocation in report + 112163 MASSIF crashed with signal 7 (SIGBUS) after running 2 days + 119404 problems running setuid executables (partial fix) + 121629 add instruction-counting mode for timing + 127371 java vm giving unhandled instruction bytes: 0x26 0x2E 0x64 0x65 + 129937 ==150380 + 129576 Massif loses track of memory, incorrect graphs + 132132 massif --format=html output does not do html entity escaping + 132950 Heap alloc/usage summary + 133962 unhandled instruction bytes: 0xF2 0x4C 0xF 0x10 + 134990 use -fno-stack-protector if possible + 136382 ==134990 + 137396 I would really like helgrind to work again... + 137714 x86/amd64->IR: 0x66 0xF 0xF7 0xC6 (maskmovq, maskmovdq) + 141631 Massif: percentages don't add up correctly + 142706 massif numbers don't seem to add up + 143062 massif crashes on app exit with signal 8 SIGFPE + 144453 (get_XCon): Assertion 'xpt->max_children != 0' failed. + 145559 valgrind aborts when malloc_stats is called + 145609 valgrind aborts all runs with 'repeated section!' + 145622 --db-attach broken again on x86-64 + 145837 ==149519 + 145887 PPC32: getitimer() system call is not supported + 146252 ==150678 + 146456 (update_XCon): Assertion 'xpt->curr_space >= -space_delta'... + 146701 ==134990 + 146781 Adding support for private futexes + 147325 valgrind internal error on syscall (SYS_io_destroy, 0) + 147498 amd64->IR: 0xF0 0xF 0xB0 0xF (lock cmpxchg %cl,(%rdi)) + 147628 SALC opcode 0xd6 unimplemented + 147825 crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI) + 148174 Incorrect type of freed_list_volume causes assertion [...] + 148447 x86_64 : new NOP codes: 66 66 66 66 2e 0f 1f + 149182 PPC Trap instructions not implemented in valgrind + 149504 Assertion hit on alloc_xpt->curr_space >= -space_delta + 149519 ppc32: V aborts with SIGSEGV on execution of a signal handler + 149892 ==137714 + 150044 SEGV during stack deregister + 150380 dwarf/gcc interoperation (dwarf3 read problems) + 150408 ==148447 + 150678 guest-amd64/toIR.c:3741 (dis_Grp5): Assertion `sz == 4' failed + 151209 V unable to execute programs for users with UID > 2^16 + 151938 help on --db-command= misleading + 152022 subw $0x28, %%sp causes assertion failure in memcheck + 152357 inb and outb not recognized in 64-bit mode + 152501 vex x86->IR: 0x27 0x66 0x89 0x45 (daa) + 152818 vex x86->IR: 0xF3 0xAC 0xFC 0x9C (rep lodsb) + Developer-visible changes: -- New debugging command line options: --debug-dump, --trace-symtab-patt... +- The names of some functions and types within the Vex IR have + changed. Run 'svn log -r1689 VEX/pub/libvex_ir.h' for full details. + Any existing standalone tools will have to be updated to reflect + these changes. The new names should be clearer. The file + VEX/pub/libvex_ir.h is also much better commented. + +- A number of new debugging command line options have been added. + These are mostly of use for debugging the symbol table and line + number readers: + + --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt> + --trace-cfi=no|yes show call-frame-info details? [no] + --debug-dump=syms mimic /usr/bin/readelf --syms + --debug-dump=line mimic /usr/bin/readelf --debug-dump=line + --debug-dump=frames mimic /usr/bin/readelf --debug-dump=frames + --sym-offsets=yes|no show syms in form 'name+offset' ? [no] + +- Internally, the code base has been further factorised and + abstractified, particularly with respect to support for non-Linux + OSs. + +(3.3.0RC1: XX Dec 2007, vex rXXXX, valgrind rXXXX). +(3.3.0: XX Dec 2006, vex rXXXX, valgrind rXXXX). -- The names of some functions and types within the Vex IR have changed. - (Run 'svn log -r1689 VEX/pub/libvex_ir.h' for full details.) - So any existing tools will have to be updated to reflect these - changes. The new names should be clearer. The file - VEX/pub/libvex_ir.h is also much better commented, and serves as the - best documentation about Vex. Release 3.2.3 (29 Jan 2007) |