Commit Graph

71 Commits

Author SHA1 Message Date
Nicholas Nethercote
9a0718281f Fixups to get "make dist" to work -- mostly involving regression test files.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1099
2002-09-23 16:09:39 +00:00
Nicholas Nethercote
ae9433672d Removed cachegrind docs (now in cachegrind/docs/)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1097
2002-09-23 13:13:45 +00:00
Nicholas Nethercote
a766333b67 Added .cvsignore file.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1092
2002-09-23 11:36:39 +00:00
Nicholas Nethercote
f1689b96db Changed lots of files for the new core/ + skin/ directory structure:
- changed lots of Makefile.am files
   - changed configure.in
   - changed lots of #include lines for changed file names
   - changed lots of file headers n footers for changed file names
   - changed vg_regtest to handle new directory structure -- recursively
     traverses subdirectories for .vgtest test files
   - changed lots of paths in memcheck/ regression test expected outputs


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1090
2002-09-23 11:21:57 +00:00
Nicholas Nethercote
afebe61b37 Files updated, added and removed in order to turn the ERASER branch into HEAD
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1086
2002-09-23 09:36:25 +00:00
Julian Seward
ecd4ee7a79 Wibbles for 1.0.0.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@540
2002-07-26 11:34:39 +00:00
Julian Seward
5b87b4d8a7 Document probs with gcc-3.1 false positives.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@512
2002-07-16 01:49:22 +00:00
Julian Seward
ee99a560ad Mention kernel probs with R H "Limbo" public beta (hacked 2.4.18).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@504
2002-07-14 10:45:21 +00:00
Julian Seward
fb00a3330d Document some limitations.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@503
2002-07-13 14:09:35 +00:00
Julian Seward
7b7227adc8 Include valgrind.spec and valgrind.spec.in in tarballs.
Also add a line to the description in the .spec.in.
(Shlomi Fish)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@494
2002-07-13 12:37:28 +00:00
Julian Seward
2709e5a7f9 Add helpful info for package builders.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@482
2002-07-01 08:46:27 +00:00
Julian Seward
6764cec920 Final documentation updates for 1.0.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@481
2002-07-01 08:30:05 +00:00
Julian Seward
e8dd1efe84 Implement --weird-hacks=truncate-writes to limit the size of write syscalls
to 4096, to possibly avoid deadlocks under very rare circumstances.
Is fully documented and commented.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@479
2002-06-30 12:44:54 +00:00
Nicholas Nethercote
e95cef5f3c Removed line about Cachegrind being experimental.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@472
2002-06-27 15:45:09 +00:00
Julian Seward
f18008337f Patrick Ohly's --alignment= patch, to increase alignment of malloc'd
blocks if needed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@422
2002-06-14 10:17:05 +00:00
Julian Seward
c797c7e5f9 First round of manual update for 1.0.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@417
2002-06-13 20:37:25 +00:00
Nicholas Nethercote
f598db43e4 A few minor improvements.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@402
2002-06-10 10:24:05 +00:00
Nicholas Nethercote
9e8a864df1 Updated Cachegrind section for the CPUID-addition/vg_cachegen-removal.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@401
2002-06-08 14:06:37 +00:00
Nicholas Nethercote
b859182c44 Removed the need for the user to generate a cache simulation -- now do
automatic cache configuration detection using the CPUID instruction.
This can be overridden from the command-line if necessary.

vg_include.h:
    - added the cache_t type and UNDEFINED_CACHE macro

    - added command line args (of type cache_t) allowing manual override of
      I1/D1/L2 configuration

    - added log2(), which is generally useful

vg_main.c, valgrind.in, cachegrind.in:
    - added handling of the new --{I1,D1,L2}=<size>,<assoc>,<line_size>
      options

vg_cachesim.c:
    - lots of stuff for auto-detecting cache configuration with CPUID.
      Only handles Intel and AMD chips at the moment, and possibly not all of
      them.  Falls back onto defaults if anything goes wrong, and the configs
      can be manually overridden from the command line anyway.

    - now not printing cache summary stats if verbosity == 0.  Still writing
      cachegrind.out, though.

vg_cachesim_gen.c:
    - new file containing stuff shared by the I1/D1/L2 simulations

vg_cachesim_{I1,D1,L2}:
    - removed most of it;  each now just calls a macro defined in
      vg_cachesim_gen.c

vg_cachegen:
    - has been cvs removed as it is no longer needed.

Makefile.am:
    - added vg_cachesim_gen.c

    - removed vg_cachegen

configure.in:
    - removed vg_cachegen


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@400
2002-06-08 13:36:03 +00:00
Nicholas Nethercote
77dca1afe5 Cache simulator now handles basic block discards correctly. When
VG_(cachesim_discard_notify) is called, the cost centre array for the basic
block is removed from the table, and its counts are aggregated into a single
"discard" cost centre, and the cost centre array is free'd.

The aggregate discard cost centre is given the filename:function_name
"(discarded):(discarded)".  Mentioned this in the manual.

Only tested with tests/discard.c.  Seems to work well for that case though :)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@385
2002-06-05 14:41:10 +00:00
Nicholas Nethercote
703acc24b7 Tiny documentation wibbles
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@383
2002-06-05 09:21:51 +00:00
Julian Seward
a487ef1ce7 A new kind of error: PThread errors. Used to report detected misuse in
the pthread_* API.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@379
2002-06-04 22:54:20 +00:00
Julian Seward
9b734f2384 Markup bug.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@352
2002-06-01 23:56:38 +00:00
Julian Seward
162b23f120 Update for sigaltstack
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@312
2002-05-22 23:56:33 +00:00
Julian Seward
53c56fd4d1 Implement semaphore functions.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@295
2002-05-19 00:13:34 +00:00
Julian Seward
96b04d4f30 Fix fork/exec stuff so it works again. We have to mangle LD_LIBRARY_PATH
as well as LD_PRELOAD, so as to make our libpthread.so go out of scope
when a child which we don't want to trace, is exec'd.  Otherwise the
child can wind up being connected to our libpthread.so but not to
valgrind.so, which is an unworkable combination; you have to be connected
to both or neither.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@291
2002-05-18 13:14:17 +00:00
Julian Seward
e45ef9f6cc Add clarification of the purpose of the malloc/free mismatch checks
(Pascal Massimino)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@289
2002-05-18 11:09:19 +00:00
Julian Seward
6610ca19b3 Remove existing non-working support for self-modifying code, and instead
add a simple compromise, in which the client can notify valgrind
that certain code address ranges are invalid and should be retranslated.
This is done using the VALGRIND_DISCARD_TRANSLATIONS macro in valgrind.h.

At the same time take the opportunity to close the potentially fatal
loophole that translations for executable segments were not being
discarded when those segments were munmapped.  They are now.

Documentation updated.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@274
2002-05-16 11:06:21 +00:00
Nicholas Nethercote
8cbe9082c5 Expanded --sort option to take threshold args with the event names. Lets you
do things like "show functions covering 99% of all D2mr events *and* 99% of all
D2mw events" - before you could only choose the threshold for one.

Useful for me, but probably no-one else.  Still mentioned it in the docs,
though.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@269
2002-05-13 20:27:54 +00:00
Frédéric Gobry
460d2313d2 Use $(srcdir) to specify the location of the linker script
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@268
2002-05-13 07:50:45 +00:00
Julian Seward
d6920d2b5c Fix spelling mistake: wierd*hacks --> weird*hacks
Also add a testcase.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@265
2002-05-12 10:52:16 +00:00
Julian Seward
2943666eb5 In order to catch timeout events on fds which are readable and which
have been ioctl(TCSETA)'d with a VTIMEout, we appear to need to ask if
the fd is writable, for some reason.  Ask me not why.  Since this is
strange and potentially troublesome we only do it if the user asks
specially, by specifying --wierd-hacks=ioctl-VTIME.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@264
2002-05-12 03:00:17 +00:00
Julian Seward
59ff40a36c Insert hacks, only partially successful, to make 'make distcheck' work
with the new vg_libpthread.vs linker script.  Problem is that builds
where builddir != srcdir don't work now.  Don't know how to fix.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@253
2002-05-10 03:03:57 +00:00
Julian Seward
aa02efa1a0 More symbol versioning stuff
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@250
2002-05-10 01:52:58 +00:00
Julian Seward
ee775d8b61 Add a version script so as to create the right versioned symbols for
libpthread.so.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@249
2002-05-10 01:42:33 +00:00
Nicholas Nethercote
74bb5ef434 Minor corrections about cache profiling cost centres.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@243
2002-05-09 15:43:33 +00:00
Nicholas Nethercote
53d40a27da vg_symtab2.c:
- No longer aborting when encountering a N_SOL symbol after the 65535th
      line in a file, just printing a warning/apology that annotations/messages
      might be wrong.

      This is a pain to fix properly, since it requires first guessing when a
      line number overflow happens, then switching to one or more other files,
      then switching back.

manual: wibble


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@225
2002-05-07 10:26:57 +00:00
Nicholas Nethercote
ece0587a11 Added section to tech docs on how cachegrind works, including the
cachegrind.out file format.

Tiny change in user manual.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@198
2002-05-03 17:51:10 +00:00
Julian Seward
892eb8f8fc Remove comments about Mozilla 1.0RC1 crashing, since that's not a Valgrind
bug, and explain, for the benefit of Mozilla hackers, how to make 1.0RC1
work on Valgrind.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@195
2002-05-02 03:57:00 +00:00
Julian Seward
50ca1d2fc2 Fix free and free-mismatch err so the top frame in the bt isn't skipped.
Put a better example of free-mismatch error in the manual.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@190
2002-05-01 21:46:38 +00:00
Julian Seward
6b485c7718 Bring manual up-to-date and add stuff about pthread support.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@189
2002-05-01 12:38:06 +00:00
Julian Seward
ebe11593f2 Build and install 'cachegrind' along with 'valgrind'.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@181
2002-05-01 01:25:45 +00:00
Julian Seward
c786245133 Edit cache stuff, minorly.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@180
2002-05-01 01:24:52 +00:00
Nicholas Nethercote
bf347fb8e0 Added note about bts/btr/btc causing bogus cache read counts.
Added to todo list note about files with > 65536 lines.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@175
2002-04-30 12:46:22 +00:00
Julian Seward
7558b43cf5 Config/build/install vg_annotate and vg_cachegen correctly.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@169
2002-04-29 17:27:07 +00:00
Nicholas Nethercote
fcc45a9e85 New files:
- vg_cachesim.c
  - vg_cachesim_{I1,D1,L2}.c
  - vg_annotate.in
  - vg_cachegen.in

Changes to existing files:

  - valgrind/valgrind.in, added option:

        --cachesim=no|yes       [no]

  - Makefile/Makefile.am:
        * added vg_cachesim.c to valgrind_so_SOURCES var
        * added vg_cachesim_I1.c, vg_cachesim_D1.c, vg_cachesim_L2.c to
          noinst_HEADERS var
        * added vg_annotate, vg_cachegen to 'bin_SCRIPTS' var, and added empty
          targets for them

  - vg_main.c:
        * added two offsets for cache sim functions (put in positions 17a,17b)
        * added option handling (detection of --cachesim=yes which turns off of
          --instrument);
        * added calls to cachesim initialisation/finalisation functions

  - vg_mylibc: added some system call wrappers (for chmod, open_write, etc) for
    file writing

  - vg_symtab2.c:
        * allow it to read symbols if either of --instrument or --cachesim is
          used
        * made vg_symtab2.c:vg_what_{line,fn}_is_this extern, renaming it as
          VG_(what_line_is_this) (and added to vg_include.h)
        * completely rewrote the read loop in vg_read_lib_symbols, fixing
          several bugs.  Much better now, although probably not perfect.  It's
          also relatively fragile -- I'm using the "die immediately if anything
          unexpected happens" approach.

  - vg_to_ucode.c:
        * in VG_(disBB), patching in x86 instruction size into extra4b field of
          JMP instructions at the end of basic blocks if --cachesim=yes.
          Shifted things around to do this;  also had to fiddle around with
          single-step stuff to get this to work, by not sticking extra JMPs on
          the end of the single-instruction block if there was already one
          there (to avoid breaking an assertion in vg_cachesim.c).  Did a
          similar thing to avoid an extra JMP on huge basic blocks that are
          split.

  - vg_translate.c:
        * if --cachesim=yes call the cachesim instrumentation phase
        * made some functions extern and renamed:
                allocCodeBlock() --> VG_(allocCodeBlock)()
                freeCodeBlock()  --> VG_(freeCodeBlock)()
                copyUInstr()     --> VG_(copyUInstr)()
          (added to vg_include.h too)

  - vg_include.c: declared
        * cachesim offsets
        * exports of vg_cachesim.c
        * added four new profiling events (increasing VGP_M_CCS to 24 -- I kept
          the spare ones)
        * added comment about UInstr.extra4b field being used for instr size in
          JMPs for cache simulation

  - docs/manual.html:
        * Added --cachesim option to section 2.5.
        * Added cache profiling stuff as section 7.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@168
2002-04-29 16:03:24 +00:00
Julian Seward
c81d619159 Administrivia.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@154
2002-04-26 14:30:52 +00:00
Julian Seward
c107508a0f Try and give at least some minimal binding for all functions exported
by the real libpthread.so.  In the process fix a bunch of stuff, including
adding thread-specific h_errno and resolver state storage.  This fixes
licq crashing at startup.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@149
2002-04-25 20:17:29 +00:00
Julian Seward
66e3ae4b8f - Use CFLAGS in demangle/Makefile.am
- Get rid of -Werror; it breaks to many people's builds.  It can be
  passed in with make variable WERROR if needed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@127
2002-04-24 11:14:22 +00:00
Dirk Mueller
4cf90f4696 - don't check if the compiler supports const. No compiler we care
about doesn't support it
- readd -Werror
- move setting of CFLAGS to the Makefile instead of the configure
  script, to avoid that the custom flags we use screw up configure checks


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@113
2002-04-21 13:32:28 +00:00