Commit Graph

15 Commits

Author SHA1 Message Date
Julian Seward
efcd6e4f21 gcc 3.3.3 on ppc64-linux believes (perhaps correctly) that 'fd' can be
used when uninitialised.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5903
2006-05-15 19:27:56 +00:00
Josef Weidendorfer
e4417538ad Callgrind: Fix for callgrind_control
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5870
2006-05-01 01:38:32 +00:00
Josef Weidendorfer
4906b8a958 Callgrind: Improve self-hosting with outer callgrind tool
This adds an option to change the default handling of jumps
between functions. Usually, a jump between functions is
interpreted as call, because such jumps are typically
generated by compilers on tail recursion optimization, and
we want to present this as call to the user. Thus, such
a jump pushes a call onto callgrinds shadow stack.
The option "--pop-on-jump" changes this to pop+push the
shadow callstack: then, a jump between functions is seen
as a return to the caller and a new call.

The default behaviour is _bad_ for using callgrind with
self-hosting. Valgrinds inner loop VG_(run_innerloop)
jumps to generated code, and this code jumps back to
the inner loop. Thus, every executed BB adds 2 calls
to an ever increasing shadow call stack, leading to
memory consumption increasing with runtime :-(

So: For self-hosting valgrind with an outer callgrind,
always use option "--pop-on-jump" for the outer callgrind. 



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5869
2006-05-01 00:55:54 +00:00
Josef Weidendorfer
b1eb513b99 Another fix for interactive control, together with
the --base option, which allows to specify another
directory for dumps and control/result files.
With "--base=/tmp/foo", we want control/result files
in "/tmp", and not in a directory "/tmp/foo/".


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5862
2006-04-21 01:02:13 +00:00
Josef Weidendorfer
bc616b8492 Fixes for interactive control:
- callgrind_control was not working, because it checks the
  "command syntax version" to be at most 1 before doing anything.
  But callgrind used Valgrinds version for this (3.2.0). Now we
  define a separate version COMMAND_VERSION for the syntax format
  of control and result files.
  Strictly, such a version is not needed for interaction of
  callgrind and the script callgrind_control itself, as they are
  delivered in the same package. But there are also external
  controlling tools (most notable KCachegrind)

- Some systems make it difficult for callgrind_control to
  automatically detect running callgrind processes. To make
  interactivity work, one has to provide the cwd with -w.
  For commands expecting a result from callgrind, this result
  was delivered in the wrong result file.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5861
2006-04-21 00:58:58 +00:00
Julian Seward
a7a4513e1e Include missing files in tarball (== unbreak from-tarball builds)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5837
2006-04-08 13:17:25 +00:00
Josef Weidendorfer
efa0f1d7bd Callgrind: add 4 regression tests
The simwork tests check different cache simulator
options/modes. These tests should be extended to
check for the produced call graph.

The threads check tests the callgrind mode where
counts are aggregated separate per thread.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5816
2006-04-02 22:23:27 +00:00
Julian Seward
6135031a89 Fix another place where function addresses passed to Vex needed to be
dereferenced properly.  (Logically part of r5814).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5815
2006-04-02 16:21:44 +00:00
Julian Seward
74657e1694 Fix ppc64-linux breakage - get the function entry address, not the
descriptor address.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5814
2006-04-02 15:53:59 +00:00
Josef Weidendorfer
0a0cfdcaa3 Simple regression test for callgrind:
run a custom client request.

By doing this, I found out that callgrind.h still defined
client requests for VG 2 :-( Obviously, nobody was using
them. This is fixed, and other small things to make the
test run, too.

Notice for myself: regression tests are needed.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5807
2006-03-31 19:34:51 +00:00
Josef Weidendorfer
61068ab73d Option --dump-every-bb now takes a 64bit value on user
request. Update/clarify documentation.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5806
2006-03-31 13:16:15 +00:00
Josef Weidendorfer
96887583d3 Fix typos
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5805
2006-03-31 12:53:22 +00:00
Nicholas Nethercote
7852ab7f22 Make the BSD-style license notices slightly more accurate.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5803
2006-03-31 12:05:04 +00:00
Josef Weidendorfer
1cdac21bd9 Callgrind merge: documentation
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5781
2006-03-20 10:29:30 +00:00
Josef Weidendorfer
a3b8d67b91 Callgrind merge: code
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5780
2006-03-20 10:27:30 +00:00