Commit Graph

3453 Commits

Author SHA1 Message Date
Tom Hughes
100741663f Support AT_EXECFN in the ELF auxv, filling it in with the path of
the client executable valgrind is starting.

Based on a patch from John Reiser.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10885
2009-09-04 13:03:41 +00:00
Tom Hughes
48bf971cca Add support for AT_BASE_PLATFORM in the ELF auxv.
Based on patch from John Reiser.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10884
2009-09-04 12:52:16 +00:00
Julian Seward
f8acdbc2e0 Fix a couple of nits picked up by gcc-4.5, which is more warningful than 4.4.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10876
2009-08-27 23:22:39 +00:00
Bart Van Assche
82e0033fdd Switched back from dynamic detection of whether the proc filesystem
is mounted to compile-time logic in order to minimize the differences
in behavior with Valgrind version 3.5.0.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10868
2009-08-25 20:15:41 +00:00
Bart Van Assche
772166c146 Renamed the function VG_(have_proc_filesystem)() into
VG_(is_procfs_mounted)(). The old name was derived from the name
of the preprocessor macro HAVE_PROC while the new name is a more
accurate description of what this function does.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10867
2009-08-25 17:34:58 +00:00
Bart Van Assche
d6bedf985d Compiles again on Darwin.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10863
2009-08-23 11:17:25 +00:00
Bart Van Assche
dbdfae4ced The format attribute may be repeated in the function definition but does not have to.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10862
2009-08-23 11:14:12 +00:00
Bart Van Assche
f71ff79980 Fixed a declaration: function attributes must be inserted after the return type instead of before, otherwise gcc 4.4 ignores the attribute declaration.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10861
2009-08-23 11:11:36 +00:00
Bart Van Assche
6b9dcdcd97 The configure-time test whether the proc filesystem is mounted (introduced
in r10156) broke cross-compilation. This patch converts the configure-time
test into a runtime test. Should fix bug #204843.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10860
2009-08-23 09:53:27 +00:00
Bart Van Assche
81e7391bef Fixed a compiler warning.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10859
2009-08-23 09:48:56 +00:00
Tom Hughes
08ce12e17d Add some extra debugging to the launcher.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10854
2009-08-20 07:56:45 +00:00
Julian Seward
5632245432 Fix whitespace-skipping loop. (Konstantin Serebryany) (see #204377)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10845
2009-08-19 10:32:49 +00:00
Tom Hughes
6098f10fee The linker in Fedora Rawhide seems to be using ELFOSABI_LINUX as
the ABI in the ELF files it generates instead of ELFOSABI_SYSV as
has been used to date.

This was causing us to use the 64 bit backend to run 32 bit
programs as the launcher failed to identify them as 32 bit.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10841
2009-08-18 14:12:48 +00:00
Julian Seward
90346d8aad Back out r10385 (Change demangler to not use excessive space from
stack) pending further investigations, as per discussion at
http://bugs.kde.org/show_bug.cgi?id=197988.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10837
2009-08-17 16:36:11 +00:00
Julian Seward
1d1c348f85 ppc32-linux: di_notify_mmap: accept data sections mapped rwx as well as ones
mapped rw-.  Fixes #190820.  Really, this logic is still pretty ropey; we
could do a lot better here.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10828
2009-08-16 01:48:35 +00:00
Nicholas Nethercote
9acc4cc4d8 Fix the access_extended wrapper, which was rather broken. That's what I get
for not testing properly.  Added a regtest for it too.  Fixes bug 200760
(again, properly this time).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10826
2009-08-16 00:00:17 +00:00
Julian Seward
b58b99e9aa Followup to r10822: send the CDATA text to the XML channel, not the
text one.  Duh.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10825
2009-08-15 23:33:04 +00:00
Julian Seward
4b9ddd9604 Fix a couple of errors in the revised XML generation that were
spotted by Ashley Pittman:

* If I specify --xml-file=<file> but not --xml=yes I get partial
  output in the xml file.

* Using log file qualifiers with XML results in the xml for the
  qualifier being put to stdout.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10823
2009-08-15 23:05:34 +00:00
Julian Seward
5b1edb07f6 When generating XML output for suppressions, print the suppression
both wrapped up in XML tags (as before) but also in plain text in a
sequence of CDATA blocks.  Normally only one, but in the worst case
the raw data will have ]]> in it, in which case it needs to be split
across two CDATA blocks.

This apparently simple change involved a lot of refactoring of the
suppression printing machinery:

* in the core-tool iface, change "print_extra_suppression_info" (which
  prints any auxiliary info) to "get_extra_suppression_info", which
  parks the text in a caller-supplied buffer.  Adjust tools to match.

* VG_(apply_StackTrace): accept a void* argument, which is passed to
  each invokation of the functional parameter (a poor man's closure
  implementation).

* move PRINTF_CHECK into put_tool_basics.h, where it should have been
  all along

* move private printf-into-an-XArray-of-character functions from
  m_debuginfo into m_xarray, and make them public

* gen_suppression itself: use all the above changes.  Basically we
  always generate the plaintext version into an XArray.  In text mode
  that's just printed.  In XML mode, we print the XMLery as before,
  but the plaintext version is dumped into a CDATA block too.

* update the Protocol 4 specification to match all this.

This still isn't 100% right in the sense that the CDATA block data
needs to be split across multiple blocks if it should ever contain the
CDATA end mark "]]>".  The Protocol 4 spec has this right even though
the implementation currently doesn't.

Fixes #191189.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10822
2009-08-15 22:41:51 +00:00
Nicholas Nethercote
dbe64c1746 Fix a .exp file. Avoid an assertion failure with -v.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10799
2009-08-13 04:24:38 +00:00
Nicholas Nethercote
c922a7201d Add a crappy wrapper for access_extended(), one of the more ridiculous
syscalls I've had the displeasure of encountering.  Due to its
ridiculousness, the wrapper misses a PRE_MEM_WRITE check and so can result
in false positives.  The POST_MEM_WRITE update is present, though, so it
shouldn't cause subsequent problems.  Fixes bug 200760.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10786
2009-08-12 02:30:20 +00:00
Nicholas Nethercote
829fbc977d Output tweaks:
- Always print a blank line after significant messages (eg. errors).  This
  makes the handling of blank lines much simpler.

- Don't print full stops at the end of messages.  We mostly don't do it, so
  I got rid of all the remaining ones I could find for consistency.

- Use --leak-check=full rather than --leak-check=yes, for consistency with
  docs and other messages.

- Update partiallydefinedeq.stderr.exp2 for older changes.

This commit only updates the code.  Test updates will follow shortly.  (I'm
separating them so the code changes aren't swamped by the test changes in
the SVN logs.)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10783
2009-08-12 00:14:16 +00:00
Nicholas Nethercote
9d2e0f9cbe Count error contexts properly in VG_(unique_error). Avoids the problem seen
of "5 errors from 0 contexts" with leak errors.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10773
2009-08-11 00:52:40 +00:00
Julian Seward
6f3ce096ad Fix some const stuff that gcc-4.4.0 complains about.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10771
2009-08-10 19:39:02 +00:00
Julian Seward
8379ad7f3b parse_type_DIE: push incomplete structure tyents on the type stack,
since gcc-4.4 on Fedora 11 will create DW_TAG_member entries within
it, and we need to have a plausible parent type on the stack.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10770
2009-08-10 18:59:54 +00:00
Nicholas Nethercote
675914e025 Try to fix error_counts.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10768
2009-08-10 08:25:39 +00:00
Nicholas Nethercote
49d480e3ca Count leak as errors. Fixes bug 152393.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10767
2009-08-10 07:50:00 +00:00
Nicholas Nethercote
6fd1b000e4 Allow custom blocks to overlap with malloc blocks. Fixes bug 100628.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10765
2009-08-10 07:36:54 +00:00
Nicholas Nethercote
4e495edf4a Make "option" terminology consistent some more. Also tweaked the mempool
Memcheck section a little.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10759
2009-08-10 01:29:14 +00:00
Julian Seward
2c168a6128 Resync after {wq,p}thread_hijack rather than merely doing a check.
Believed to help with, although not fix, the underlying problem in
#192634.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10751
2009-08-07 20:28:58 +00:00
Julian Seward
8ffe2fdefa Tidy up of messaging:
* For all tools and the core, don't show statistics when -v is in
  effect.  Instead, try to restrict -v to mostly user-useful
  stuff.

* A new flag --stats=no|yes [no] produces statistics output instead.

* Fix longstanding problem in that Memcheck's leak checker ran after
  the core's error manager module shut down, thereby not showing use
  counts of leak suppressions.  This fixes #186790.

* As a consequence, the leak checker text output of Memcheck has
  changed a bit -- leak check is done before the final error
  summary is done (much more logical), and the output has been
  tidied up a bit.

* Helgrind, Drd and Ptrcheck now also print "For counts of
  detected and suppressed errors, rerun with: -v", which makes
  them consistent with Memcheck in this regard.  These are
  filtered out by the regtest filter scripts.

For all tools except Memcheck, the regtests are unchanged.  On
Memcheck regtests still fail due to rearrangements of the leak
checker output.  This will be fixed by a followup commit.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10746
2009-08-07 15:46:56 +00:00
Nicholas Nethercote
8026c4766f Various option-related tweaks:
- Match the ordering of the non-tool-specific options in the usage message
  with the order in the user manual.  As a result, we now always print
  --alignment and --trace-malloc in the core's usage messages, which saves
  malloc-replacing tools from doing it themselves (and brings it in line
  with options that only apply to error-collecting tools).

- Improved the presentation of the Vex options with --help-debug.

- Removed documentation of -d in the manual because it's a debugging-only flag.

- Documented --read-var-info in the manual.  This fixes bug 201169.

- Renamed --auto-run-dsymutil as --dsymutil and documented it in the usage
  message.

- Fixed an XML error in manual-core-adv.xml.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10703
2009-08-04 02:32:55 +00:00
Nicholas Nethercote
9c4252c6a1 Don't wrap the "Command:" line, as doing so makes cutting-and-pasting the
command difficult.  Also, when wrapping I was failing to factor in the
escape chars needed for chars like ' ';  now I don't need to.  And this
means the 'long-command' test is no longer necessary.  In other words,
favour utility and simplicity over aesthetics.

Also, the "Command:" line wasn't being wrapped in <line></line> in XML
output.  It now is.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10699
2009-08-04 00:27:56 +00:00
Tom Hughes
213ac85a98 Ignore structure members with no location - thiscan happen with static
const members in C++ code which are compile time constants that do no
exist in the class. They're not of any interest to us so we ignore them.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10698
2009-08-03 14:39:54 +00:00
Julian Seward
c0d8b0fce5 Patch to remember/restore CFA state on DW_CFA_{remember,restore}_state.
In addition to that it fixes a bug in restore_ctx handling, where it
was restoring the state from the same stack level in restore_ctx
context as is current in ctx, which is wrong, the CIE likely has no
DW_CFA_remember_state at all, while the FDE could have one.
(Jakub Jelinek).  This is #200029, patch in comment #2.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10697
2009-08-03 13:47:04 +00:00
Julian Seward
7a04b26015 Use Dwarf3 section version numbers as specified in Appendix F of the
Dwarf3 standard.  (Jakub Jelinek).  This is #200029, patch in comment
#1.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10696
2009-08-03 13:29:42 +00:00
Tom Hughes
688d43d18d Handle some more DW_TAG_subrange_type cases which Fedora 11's
gcc 4.4.0 seems to generate.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10695
2009-08-03 08:50:58 +00:00
Nicholas Nethercote
5dfe01a847 With the recent VG_(message) change,
VALGRIND_{PRINTF,PRINTF_BACKTRACE,INTERNAL_PRINTF} were no longer appending
newlines.  This meant that --trace-malloc=yes spewed everything onto a
single line, among other things.

Rather than adding the newline back in, I chose to offically change their
behaviour to not add the newlines, as this is more flexible (and the reason
for the underlying VG_(message) change).  I updated all the relevant places
I could find.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10694
2009-08-03 01:38:56 +00:00
Julian Seward
1bce42d94e Minor improvements to printing w.r.t. sync checking / resyncing.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10693
2009-08-03 01:05:18 +00:00
Julian Seward
99691de870 Add /Applications to the list of directories in which not to try to auto-run dsymutil.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10692
2009-08-03 01:04:18 +00:00
Nicholas Nethercote
c20ba72234 In the "Command:" line in the preamble, escape special chars such as ' ' and
'\\'.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10690
2009-08-02 23:03:06 +00:00
Julian Seward
b39a007b53 Reinstating a heavily modified version of r10402. This is to do
with #190429.

This patch (originally from Jakub Jelinek) makes the redir of strlen
in ld.so on amd64-linux ld.so mandatory, but only for glibc 2.10 and
above.  For glibc-2.2 (our earliest supported version) to glibc-2.9
it is still optional.

Also, makes more verbose, the message that is printed if a mandatory
ld.so redirection on Linux cannot be set up.

Is believed to fix #190429.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10689
2009-08-02 12:21:31 +00:00
Julian Seward
d7ed7f6a13 (almost completely just function renaming):
* VG_(find_seginfo): incrementally rearrange the DebugInfo list, like
  most of the other list-searching functions do.

* rename all VG_(*seginfo*) functions exported from m_debuginfo to
  VG_(*DebugInfo*).  "seginfo" was a historical name which was mostly
  but not completely, done away with some time back.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10678
2009-07-31 09:41:29 +00:00
Nicholas Nethercote
5197db2b3d Fix compile error.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10672
2009-07-31 05:19:29 +00:00
Nicholas Nethercote
6a4973b256 Prettify the messages printed when segment mismatches happen. Also get rid
of two unnecessary gotos.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10671
2009-07-31 05:06:29 +00:00
Nicholas Nethercote
80e2524997 Don't bother printing "My PID" when logging to a file or socket, as that
value is shown at the start of every output line.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10669
2009-07-30 23:36:43 +00:00
Nicholas Nethercote
c2f21c39be Now that we always print the command, no need to reprint it when logging to
file or a socket.  And tweak how the PIDs are printed.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10668
2009-07-30 23:35:11 +00:00
Nicholas Nethercote
0ca08b4fb1 Don't print the command in the preamble with --xml=yes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10667
2009-07-30 23:14:55 +00:00
Nicholas Nethercote
a3fe17b34b Print the command being run at startup. It wraps to avoid going over 80
chars wide whenever possible.  Finishes off bug 197933.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10657
2009-07-29 23:34:49 +00:00
Tom Hughes
bba592e3fc Improve futex system call support. Patch from BZ#201757 which I have
attempted to cross check against current kernel code. Reading the
futex system call code mostly just made my head hurt however...


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10656
2009-07-29 11:09:01 +00:00