Commit Graph

242 Commits

Author SHA1 Message Date
Julian Seward
555e3b2ccb arm-linux: Set _start symbol alignment and type. Bug 266035 comment 1.
(Jeff Brown, jeffbrown@google.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11720
2011-05-03 14:24:11 +00:00
Julian Seward
b3827d6c33 Create new module m_libcsetjmp, which wraps up uses of
__builtin_setjmp and __builtin_longjmp so that they can be selectively
replaced, on a platform by platform basis.  Does not change any
functionality.  Related to #259977.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11687
2011-04-11 16:17:51 +00:00
Julian Seward
9c6d0dc9c9 Fix up most but not all warnings generated by gcc-4.6 about
dead assignments ("[-Wunused-but-set-variable]").



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11673
2011-03-28 16:26:42 +00:00
Julian Seward
6107fd666c Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind
side components. (Florian Krohm <britzel@acm.org> and Christian
Borntraeger <borntraeger@de.ibm.com>).  Fixes #243404.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604
2011-03-07 16:05:35 +00:00
Julian Seward
906915e79b New command line option: --trace-children-skip-by-arg, which allows
chase/nochase decisions for child processes to be made on the basis
of their argv[] entries rather than on the name of their executables.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11483
2010-12-06 11:40:04 +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
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
Bart Van Assche
8504416a46 Consistency improvement: made sure that VG_TRACK(die_mem_stack, address, len)
is not invoked with a zero third argument.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11342
2010-09-07 16:32:53 +00:00
Bart Van Assche
35eece7dd5 Added command-line option --prefix-to-strip=... Closes #245535.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11312
2010-08-31 15:18:32 +00:00
Julian Seward
7a7956ac81 Merge from branches/THUMB: link-time stub needed on Ubuntu 10.04 (ARM)
(maybe.  actually I am not sure why this is necessary).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11284
2010-08-22 12:23:01 +00:00
Julian Seward
d5436418b9 In XML mode, properly escape test strings in the preamble.
Fixes #244923.  (Zhujunling@huawei.com)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11227
2010-07-23 17:03:22 +00:00
Nicholas Nethercote
f801f7b5d7 Make -h -h be equivalent to --help-debug.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11211
2010-07-06 04:25:12 +00:00
Nicholas Nethercote
11f94ef626 Make error messages at start-up more consistent. Every line of such
messages now begin with "valgrind: ", and they're more often printed before
the preamble.  This required introducing a new message kind, Vg_FailMsg, and
functions VG_(fmsg) and VG_(fmsg_bad_option), and removing
VG_(err_bad_option).

Where we used to have horrible output like this:

    [ocean:~/grind/ws2] vg5 --tool=massif --threshold=101 date
    ==31877== Massif, a heap profiler
    ==31877== Copyright (C) 2003-2010, and GNU GPL'd, by Nicholas Nethercote
    ==31877== Using Valgrind-3.6.0.SVN and LibVEX; rerun with -h for copyright info
    ==31877== Command: date
    ==31877== 
    ==31877== --threshold must be between 0.0 and 100.0
    valgrind: Bad option '--threshold'; aborting.
    valgrind: Use --help for more information.

We now have nice output like this:

    [ocean:~/grind/ws2] vg2 --tool=massif --threshold=101 date
    valgrind: Bad option: --threshold=101
    valgrind: --threshold must be between 0.0 and 100.0
    valgrind: Use --help for more information or consult the user manual.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11209
2010-07-06 04:05:23 +00:00
Julian Seward
77f742ee15 Give prototypes for the 64-bit integer division replacements, so
gcc doesn't complain about the lack thereof.  (x86-darwin only).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11206
2010-07-01 14:50:30 +00:00
Nicholas Nethercote
6fd0eb7b07 Merged the MACOSX106 branch to the trunk. Merge command:
svn merge -r11143:HEAD svn://svn.valgrind.org/valgrind/branches/MACOSX106

There were some easy-to-resolve conflicts.

Then I had to fix up coregrind/link_tool_exe*.in -- those files had been
added independently on both the trunk and the branch, AFAICT.  I just
overwrote the trunk versions with the branch versions.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11194
2010-07-01 00:20:20 +00:00
Bart Van Assche
45037a25dc Fixed compiler warnings about casting from const char * to char *.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11176
2010-06-14 18:12:56 +00:00
Bart Van Assche
8ac697bb57 Made the abort() function available on PPC too.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11172
2010-06-13 13:46:24 +00:00
Julian Seward
2e6b7655d1 New flag --require-text-symbol=:sopatt:fnpatt, to be used to check
that specified shared objects contain specified symbols.  Along with a
couple of regtests that unfortunately will fail on MacOSX.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11125
2010-05-09 22:30:43 +00:00
Julian Seward
9b0574dff8 Update copyright dates to 2010.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121
2010-05-03 21:37:12 +00:00
Bart Van Assche
53596eaf4a The help text printed by command-line option -h does now show the default
value for option --read-var-info. Fixes bug #231458.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11097
2010-03-27 07:38:39 +00:00
Julian Seward
977b0eaeaa Add command line flag --vex-guest-chase-cond=no|yes [no] to control
whether front ends should speculatively chase through conditional
branches.  Disabled by default.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11026
2010-01-15 10:57:57 +00:00
Julian Seward
e9de458500 Merge from branches/ARM, all parts of the ARM-Linux port except for
the changes to do with reading and using ELF and DWARF3 info.
This breaks all targets except amd64-linux and x86-linux.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10982
2010-01-01 11:59:33 +00:00
Julian Seward
426c137045 New flag: --trace-children-skip=patt1,patt2,etc
Specifies a comma-separated list of executable-names
(with "*" and "?" wildcards allowed) that should not be traced into
even when --trace-children=yes.  Modified version of a patch
from Bill Hoffman.  Fixes #148932.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10927
2009-11-05 08:55:13 +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
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
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
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
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
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
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
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
Nicholas Nethercote
78b2e5c83e Started overhauling the documentation:
- There were detailed descriptions of all the tools in the Quick Start
  Guide, the Manual introduction, and the start of each tool chapter.  To
  avoid duplication/overlap, I removed these altogether from the Quick Start
  Guide, and shortened them in the intro.

- Improved the description of what errors Memcheck can find.

- Made all tool chapters start with "Overview" section, for consistency.

- Made the "run with --tool=XXX" bit consistent in each tool chapter.

- Made all tool chapter titles match the description given when running them.

- Added BBV to the User Manual intro.

- Generally clarified, updated, and future-proofed various bits of text in
  the Quick Start Guide and User Manual introduction. 

Also:
- Changed Nulgrind's start-up description to "the minimal Valgrind tool".

- Fixed some punctuation in the usage message.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10652
2009-07-29 02:36:21 +00:00
Nicholas Nethercote
fb2fa41714 Add Valgrind version back into the preamble.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10572
2009-07-24 04:47:04 +00:00
Nicholas Nethercote
9c321e6dfd Include valgrind_libdir and VG_(libdir) in the debugLog output. This was
useful for me debugging a broken installation yesterday.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10536
2009-07-22 22:41:38 +00:00
Bart Van Assche
78e3a1549a Updated documentation related to the --read-var-info flag.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10521
2009-07-22 10:34:55 +00:00
Julian Seward
e7dde85a24 Merge coregrind/ changes from branches/MESSAGING_TIDYUP r10464.
This commit tidies up and rationalises what could be called the
"messaging" system -- that part of V to do with presenting output to
the user.  In particular it brings significant improvements to XML
output.

Changes are:

* XML and normal text output now have separate file descriptors,
  which solves longstanding problems for XML consumers caused by
  the XML output getting polluted by unexpected non-XML output.

* This also means that we no longer have to hardwire all manner
  of output settings (verbosity, etc) when XML is requested.

* The XML output format has been revised, cleaned up, and made
  more suitable for use by error detecting tools in general
  (various Memcheck-specific features have been removed).  XML
  output is enabled for Ptrcheck and Helgrind, and Memcheck is
  updated to the new format.

* One side effect is that the behaviour of VG_(message) has been
  made to be consistent with printf: it no longer automatically
  adds a newline at the end of the output.  This means multiple
  calls to it can be used to build up a single line message; or a
  single call can write a multi-line message.  The ==pid==
  preamble is automatically inserted at each newline.

* VG_(message)(Vg_UserMsg, ..args..) now has the abbreviated form
  VG_(UMSG)(..args..); ditto VG_(DMSG) for Vg_DebugMsg and
  VG_(EMSG) for Vg_DebugExtraMsg.  A couple of other useful
  printf derivatives have been added to pub_tool_libcprint.h,
  most particularly VG_(vcbprintf).

* There's a small change in the core-tool interface to do with
  error handling: VG_(needs_tool_errors) has a new method
  void (*before_pp_Error)(Error* err)  which, if non-NULL, is
  called just before  void (*pp_Error)(Error* err).  This is to
  give tools the chance to look at errors before any part of them
  is printed, so they can print any XML preamble they like.

* coregrind/m_errormgr.c has been overhauled and cleaned up, and
  is a bit simpler and more commented.  In particular pp_Error
  and VG_(maybe_record_error) are significantly changed.

The diff is huge, but mostly very boring.  Most of the changes
are of the form

-   VG_(message)(Vg_UserMsg, "this is a message %d", n);
+   VG_(message)(Vg_UserMsg, "this is a message %d\n", n);

Unfortunately as a result of this, it touches a large number
of source files.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10465
2009-07-15 14:48:32 +00:00
Nicholas Nethercote
75b92a2ec9 Shorten the preamble by moving some of it into the --help output. This
partly fixes bug 197933.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10451
2009-07-14 06:55:05 +00:00
Nicholas Nethercote
9398df7628 Don't put the Vex SVN revision number in the preamble -- it achieves little
and is an enormous pain.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10447
2009-07-14 04:49:18 +00:00
Nicholas Nethercote
d1f8801998 Just whitespace and comment changes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10388
2009-07-01 02:39:26 +00:00
Nicholas Nethercote
07045477ca Merge the DARWIN branch onto the trunk.
I tried using 'svn merge' to do the merge but it did a terrible job and
there were bazillions of conflicts.  So instead I just took the diff between
the branch and trunk  at r10155, applied the diff to the trunk, 'svn add'ed
the added files (no files needed to be 'svn remove'd) and committed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10156
2009-05-28 01:53:07 +00:00
Nicholas Nethercote
f5d63ec869 DARWIN sync: minor layout things, comments.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10057
2009-05-21 01:25:43 +00:00
Nicholas Nethercote
cae079c2c6 DARWIN sync: tweak debuglog output.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10055
2009-05-21 01:15:18 +00:00
Nicholas Nethercote
131ab00744 Merged non-Darwin-specific parts of r9397,r9423,r9490, 9461, 9462 from the
DARWIN branch.  A big ugly DARWIN/trunk sync commit, mostly to do with
changing the representation of SysRes and vki_sigset_t.  Functionality of
the trunk shouldn't be changed by it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9876
2009-05-18 02:12:08 +00:00
Nicholas Nethercote
6378dfe575 Created a new module, m_aspacehl. Factored out three(!) copies of
get_seg_starts() into it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9796
2009-05-08 00:39:31 +00:00