Commit Graph

8222 Commits

Author SHA1 Message Date
Tom Hughes
8a3cde403f Add support for DW_ATE_UTF from DWARF4 which is needed for char16_t
support in C++0X.

Patch from Christian Borntraeger on bug #254550.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11450
2010-10-18 14:57:58 +00:00
Tom Hughes
9900b430c5 Don't look for build-id notes if NT_GNU_BUILD_ID is not defined.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11449
2010-10-18 13:04:13 +00:00
Tom Hughes
c8aedaf422 Add support for using build-id to find debugging information as
some distributions are starting to drop the old debuglink support
now. Fixes #254257.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11448
2010-10-18 12:38:22 +00:00
Julian Seward
0199bdd69f Bump version number on the trunk.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11447
2010-10-15 08:52:43 +00:00
Julian Seward
7b33a9428e Update filter for Ubuntu 10.04.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11444
2010-10-14 10:46:56 +00:00
Julian Seward
81510fd6fe Update expected outputs following recent amd64-unwind improvements (??)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11443
2010-10-14 10:46:22 +00:00
Julian Seward
c262befad2 Update expected output.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11442
2010-10-14 10:45:20 +00:00
Julian Seward
369c729ea3 Updates for 3.6.0.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11441
2010-10-14 00:26:42 +00:00
Julian Seward
b43eec1219 Documentation update for 3.6.0 (not including NEWS).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11440
2010-10-13 21:47:29 +00:00
Julian Seward
b3bb084c4a Increase default size of the freed blocks queue from 10MB to 20MB.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11439
2010-10-13 21:19:54 +00:00
Julian Seward
32dd8e857c Add documentation for exp-dhat.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11438
2010-10-13 14:06:00 +00:00
Julian Seward
bf740e3b6c Add heading items.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11437
2010-10-13 14:05:30 +00:00
Julian Seward
9a9190f918 * cosmetic output changes
* add an assertion that the core block lookup routine works sanely


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11436
2010-10-13 14:04:25 +00:00
Julian Seward
0e140511b6 Changes to make exp-ptrcheck work reasonable on Fedora 14 x86:
* looks_like_a_pointer: x86-linux: halve lower threshold value
  to take account of evident address space randomisation done
  by Fedora 14 on x86

* handle __NR_lgetxattr

* move __NR_mq_* entries to the correct place (tidyup only)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11435
2010-10-12 22:47:09 +00:00
Julian Seward
ecf76d8b09 Minimal fixes needed to make this tool actually usable:
* change the per-block-byte freq count type from 8- to 16-bit
  so as to reduce the misleadingness of eventual numbers for
  frequently accessed blocks

* disable debug printing

* add command line parameters to control the number of APs shown
  in the final output, and to control the sorting order

* show average block size for each AP

* avoid possible problems when retiring a block and merging its
  per-byte access counts into the AP's counts

* add a trailer message giving some important hints to the user



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11434
2010-10-12 18:08:33 +00:00
Julian Seward
2b84460a22 Fix up printing of the can't-autodetect-params message and the
filtering out thereof, so as to make Cachegrind and Callgrind
pass their regressiont tests on ARM-Linux.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11433
2010-10-12 10:14:43 +00:00
Julian Seward
dfb2ce8d2e Define VG_CLREQ_SZB correctly on ARM, so Cachegrind and Callgrind
don't assert in their regtests on ARM.  (Value is the same in both
ARM and Thumb mode, fortunately.)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11432
2010-10-12 10:13:17 +00:00
Julian Seward
230002ce29 Add DHAT as an experimental tool. DHAT (a Dynamic Heap Analysis Tool)
is a heap profiler that is complementary to Massif.  DHAT tracks heap
allocations, and connects which memory accesses are to which blocks.
It can find the following information:

* total allocation and max liveness

* average block lifetime (# instructions between allocation and
  freeing)

* average number of reads and writes to each byte in the block
  ("access ratios")

* average of longest interval of non-access to a block, also 
  measured in instructions

* which fields of blocks are used a lot, and which aren't
  (hot-field profiling)

Using these stats it is possible to identify allocation points with
the following characteristics:

* potential process-lifetime leaks (blocks allocated by the point just
  accumulate, and are freed only at the end of the run)

* excessive turnover: points which chew through a lot of heap, even if
  it is not held onto for very long

* excessively transient: points which allocate very short lived blocks

* useless or underused allocations: blocks which are allocated but not
  completely filled in, or are filled in but not subsequently read.

* blocks which see extended periods of inactivity.  Could these
  perhaps be allocated later or freed sooner?

* blocks with inefficient layout (hot fields spread out over
  multiple cache lines), or with alignment holes



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11431
2010-10-12 10:09:15 +00:00
Julian Seward
1375448f10 Make the --prefix-to-strip=... command-line option added in r11312
behave more like the original proposal in #245535.  This makes it
more flexible and general.  Also rename it.

* new name is --fullpath-after=

* allow multiple instances of --fullpath-after=

* don't require the specified strings to be prefixes, only substrings

But retain the elegant backwards-compatibility trick in Bart's r11312
commit: if --fullpath-after= is not specified at all, then behave
exactly as before.

Fixes #245535.  A mixture of patches from Bart Van Assche
(bart.vanassche@gmail.com), Alexander Potapenko (glider@google.com),
and me (integration and documentation).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11430
2010-10-12 00:44:05 +00:00
Julian Seward
2569c4fc94 Remove some fluff detected by llvm-2.8 (clang):
- "*(int *)0 = " is apparently ignored by LLVM for who-knows-why
  reason.  Cast the zero to a volatile int * instead.

- remove an unused function that gcc failed to mention was unused
  (why?  because it was marked __attribute__((noreturn)) ?)

As an aside, clang/llvm-2.8 seemed to be able to successfully
compile Valgrind.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11429
2010-10-11 19:15:33 +00:00
Julian Seward
1a7379bf89 Enable support for sys_ppoll on arm-linux (Rodrigo Belem, rodrigo.belem@openbossa.org).
See #253636.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11428
2010-10-11 19:09:53 +00:00
Julian Seward
9decf216bf Add tests for NOP cases.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11427
2010-10-11 18:55:24 +00:00
Julian Seward
d8c8293925 Improve NEON instruction set tests, so as to run tests with
different data in high and low d-register halves.
(Dmitry Zhurikhin, zhur@ispras.ru)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11426
2010-10-11 17:41:46 +00:00
Bart Van Assche
6888d60d53 none/tests/ppc*/jm-insns.c: Minor simplification.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11425
2010-10-11 07:04:07 +00:00
Bart Van Assche
7603476c7b Updated Subversion ignore list.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11424
2010-10-10 18:59:07 +00:00
Bart Van Assche
fbf9a9135c Updated DRD manual.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11423
2010-10-10 18:57:53 +00:00
Bart Van Assche
67e6d2e122 Updated the NEWS file.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11422
2010-10-10 18:54:44 +00:00
Bart Van Assche
54644b1287 Let the macro ANNOTATE_BENIGN_RACE_STATIC() do what the comment above that macro says what it does.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11421
2010-10-10 18:53:00 +00:00
Bart Van Assche
ad86d78a6c E-mail address update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11420
2010-10-10 18:07:31 +00:00
Bart Van Assche
445c62fee8 Removed an outdated document.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11419
2010-10-10 17:24:29 +00:00
Julian Seward
18503c8e64 Dwarf3 reader: handle Dwarf3 created by gcc-4.5.1. In other words,
work around the all-new-buggy-Dwarf3 created by gcc-4.5.1.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11418
2010-10-08 23:57:25 +00:00
Bart Van Assche
87b45f3ae4 Removed the configure test for __builtin_frame_address() again because it is no longer necessary.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11417
2010-10-08 18:58:44 +00:00
Julian Seward
a1ae66b03f More unwind fixes for the amd64-linux CALL_FN_*_* macros, as per
bug 243270 comments 47 and 48:
* use __builtin_dwarf_cfa(), not __builtin_frame_address(0), to get the CFA
* use correct register specifier in VALGRIND_CFI_PROLOGUE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11416
2010-10-08 17:43:26 +00:00
Bart Van Assche
b8cadb97c9 Only enable CFI annotations when __GCC_HAVE_DWARF2_CFI_ASM is defined. This should work for all platforms, all gcc versions and with and without -fno-dwarf2-cfi-asm / -fno-asynchronous-unwind-tables. Thanks to Jakub Jelinek for the hint.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11415
2010-10-08 15:54:57 +00:00
Bart Van Assche
c72e780776 valgrind.h is again independent of config.h. Note: __builtin_frame_address()
is available since at least gcc 2.95.3.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11414
2010-10-08 06:58:25 +00:00
Julian Seward
681985bb59 Add a couple of OSX 10.6 specific supps.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11413
2010-10-07 15:45:59 +00:00
Julian Seward
bee9b6b321 chmod_extended and fchmod_extended: handle NULL xsecurity argument correctly.
Fixes #247510.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11412
2010-10-07 15:38:51 +00:00
Julian Seward
1a187bd147 Update stderr filters so that regtests pass on machines with 3-level caches.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11411
2010-10-07 13:33:28 +00:00
Julian Seward
321e034815 Fix build failure I introduced in r11408, duh.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11410
2010-10-07 10:46:15 +00:00
Julian Seward
7028b51512 Local-ise some variables that don't need to be visible outside this file.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11409
2010-10-07 10:01:40 +00:00
Julian Seward
5ecb22a89e Tidy up ifdeffery a bit. (non-functional change)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11408
2010-10-07 10:00:56 +00:00
Julian Seward
db5247b157 Fix build breakage on Darwin resulting from r11402 (see #243270),
by disabling creation of .cfi directives on Darwin, until such time
as someone can figure out how to do this.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11407
2010-10-07 10:00:04 +00:00
Julian Seward
d1bad49f00 Only use VKI_O_LARGEFILE on platforms where it exists. This
unbreaks the build breakage on Darwin introduced in r11397, which
was a fix for #234064.  The breakage was subsequently reported
in #253420 and #253452, which this commit fixes.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11406
2010-10-07 09:56:19 +00:00
Julian Seward
78699f56cb Define VKI_SHMLBA on Darwin, so as to un-break build breakage caused by
r11399.  See #222545.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11405
2010-10-07 09:53:02 +00:00
Nicholas Nethercote
60d9b410d4 Change Cachegrind/Callgrind to talk about the LL (last-level) cache instead
of the L2 cache.  This is to accommodate machines with three levels of
cache.  We still only simulate two levels, the first and the last.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11404
2010-10-06 22:46:31 +00:00
Julian Seward
cb3fbb46d7 The amd64-linux unwinder rejects stacks of smaller than 512 bytes as
bogus, and produces essentially useless traces from them.  With
gcc-4.4 and later, some valid thread stacks really are smaller than
this.  Hence change the limit down to 256 bytes.  Investigated by
Evgeniy Stepanov, eugeni.stepanov@gmail.com.
See bug 243270 comment 21.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11403
2010-10-06 22:45:18 +00:00
Julian Seward
797fe272f2 amd64-linux: add suitable CFI annotations so that unwinding through
the CALL_FN_*_* macros works more reliably.  This is all very fiddly
and is described in a large comment in valgrind.h.  Fixes #243270.
(Evgeniy Stepanov, eugeni.stepanov@gmail.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11402
2010-10-06 22:07:06 +00:00
Bart Van Assche
e6ad90d0da ppc/jm-insns.c: Use proper integer types.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11401
2010-10-06 16:13:17 +00:00
Julian Seward
878207ebb9 Define VKI_SHMLBA for all supported Linux targets, thereby unbreaking
the breakage created by r11399.  Part of #222545.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11400
2010-10-06 15:55:59 +00:00
Julian Seward
566a25cf7e Make client sys_shmat work properly on arm-linux by taking into
account rounding requirements to SHMLBA.  Modified version of a patch
by Kirill Batuzov, batuzovk@ispras.ru.  This fixes the main bug in
#222545.  Temporarily breaks the build on all other platforms though.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11399
2010-10-06 15:24:39 +00:00