Commit Graph

100 Commits

Author SHA1 Message Date
Julian Seward
7240057bc8 Merge patch from Jeremy Fitzhardinge:
14-hg-mmap-magic-virgin
  This does two things:

  1. change the signatures of the new_mem_mmap and change_mem_mprotect
  functions to remove the pointless 'nn' argument. This makes them match
  the signature of new_mem_startup...

  2. change helgrind to mark memory created by mmap as if it were the
  same as other magically pre-inited memory. Implement this by pointing
  helgrind's new_mem_mmap function at new_mem_startup.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1263
2002-10-23 21:46:13 +00:00
Nicholas Nethercote
d8b0b7962d Fixed some argument type wibbles, pointed out by Arnaud Desitter.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1260
2002-10-23 12:54:11 +00:00
Julian Seward
9332fb832a Merge patch from Jeremy Fitzhardinge:
08-skin-clientreq
  Introduce a systematic way for skins to distinguish each other's
  client requests. Uses the de-facto standard two-letter identifiers in
  the top two bytes of the client request code. Also changes the
  interface to SK_(handle_client_request) so that a skin can say whether
  or not it handled the request, which allows correct setting of the
  default return value if the request was not handled.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1251
2002-10-22 04:14:35 +00:00
Julian Seward
976b63337a Common up leak detection stuff which was previously duplicated in Memcheck
and Addrcheck.  In coregrind/vg_memory.c, create

   void VG_(generic_detect_memory_leaks

and remove several hundred lines of code from both ac_main.c and mc_main.c.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1250
2002-10-21 07:29:59 +00:00
Julian Seward
e6f9adbd38 merge rev 1.35.2.6:
Change the capitalisation of Reuben's Mite.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1237
2002-10-16 19:41:41 +00:00
Nicholas Nethercote
72908a31a6 Wibbles, thanks to Arnaud Desitter.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1232
2002-10-15 08:48:08 +00:00
Julian Seward
9ea62d1526 Incorporate horrible hack to workaround problem of emitting bogus
uninit-value errors on code with inlined strlen() et al from gcc-3.1
and above.

MERGE TO STABLE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1213
2002-10-13 00:57:26 +00:00
Nicholas Nethercote
1bca542dbb whoops
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1206
2002-10-07 14:46:07 +00:00
Nicholas Nethercote
28823c33b3 Added support for multi-skin suppressions, of the form:
skin_name1,skin_name2:supp_name

No spaces are allowed on either side of the comma.

This is useful for sharing suppressions between Addrcheck and Memcheck.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1205
2002-10-07 14:42:59 +00:00
Julian Seward
fd98e867af Fix strange bug in matching AddrErrs.
Nick, can you sanity-check this?


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1202
2002-10-06 00:19:16 +00:00
Julian Seward
0e4db64cd9 Simplify assembler syntax for R H 6.2.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1201
2002-10-06 00:08:57 +00:00
Julian Seward
f75a03682d Make suppressions work again after I messed with skin names. Sigh.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1200
2002-10-05 16:49:09 +00:00
Julian Seward
704a740e17 Naming wibbles -- start skin names with a capital letter (they deserve it)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1198
2002-10-05 15:49:27 +00:00
Nicholas Nethercote
534ab14977 Moved the following macros, which were defined multiple times in multiple
files, into vg_skin.h:

    uInstr0, uInstr1, uInstr2, uInstr3, nameIReg, nameISize, nameSReg,
    newTemp, newShadow, uLiteral, uCCall

As macros they avoid namespace problems (they expand to VG_(whatever)) so
this should work fine.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1182
2002-10-04 14:34:15 +00:00
Nicholas Nethercote
db419f2bdc Moved discard, clientperm and clientstackperm from tests/ into the test
suite-proper, giving them .vgtest files and all that.  They don't make sense
for 1.0.X because the client request constants are different in HEAD, indeed
one of them (clientperm) fails with --stable.

Also moved blocked_syscall.c from tests/ to tests/unused/.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1181
2002-10-04 14:16:38 +00:00
Nicholas Nethercote
d386c3db8e Added one regression test for each of addrcheck, lackey, and helgrind, each of
which had none previously.  They all run tests/true (added as well), just to
automatically catch any total b0rkage errors.

Also fixed up filter_stderr_basic to account for changes to startup message;
my changes from yesterday broke all the --stable tests.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1179
2002-10-04 11:35:47 +00:00
Nicholas Nethercote
dd6989e7b7 comment wibbles
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1175
2002-10-04 09:22:30 +00:00
Nicholas Nethercote
3c7b9b2e03 Changed startup message to give information about skin and core separately.
Added "version" and "copyright_author" fields for skins to supply.

Now startup message looks something like this:

==12698== cachegrind, an I1/D1/L2 cache profiler for x86-linux.
==12698== Copyright (C) 2002, and GNU GPL'd, by Nicholas Nethercote.
==12698== Built with valgrind-HEAD, a program execution monitor.
==12698== Copyright (C) 2000-2002, and GNU GPL'd, by Julian Seward.
==12698== Estimated CPU clock rate is 1422 MHz
==12698== For more details, rerun with: -v

The skin can specify a version number, but the skins that will be distributed
with Valgrind don't.

Also changed "x86 GNU/Linux" to the wicked "x86-linux" at Julian's request.

Updated default regression test filter to handle this new startup message.

----

Also moved the skin's name, description, etc., fields out of VG_(needs) into a
new struct VG_(details), since they are logically quite different to the needs.
Did a little code formatting, etc., for this.  Updated skin docs
correspondingly, too.

Also renamed the need `run_libc_freeres' --> `libc_freeres' so it's a noun
phrase rather than a verb phrase.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1172
2002-10-03 14:05:52 +00:00
Nicholas Nethercote
089e7e3bcb Updated file descriptions in the copyright notices to reflect the core/skin
split.  Each skin now has its own two-line description.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1166
2002-10-02 13:26:35 +00:00
Nicholas Nethercote
41a0bcbbbb Changes made so that skin error "report this bug to" messages are distinguished
from core error ones:

  - Split up VG_(panic) into VG_(core_panic) and VG_(skin_panic)

  - Likewise, split vg_assert into vg_assert and sk_assert

  - Added a new need string: `bug_reports_to'

  - Removed VG_(skin_error) which was a previous wussy attempt at this change.
    This removed the need for the hacky redeclaration of VG_(skin_error) in
    vg_profile.c, which is good.

At the moment, Julian and Nick's email addresses are hard-coded into each skin
individually, rather than using a #define in vg_skin.h, because that didn't
feel quite right to me...  jseward@acm.org is still done with a #define for
core errors, though.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1164
2002-10-02 11:08:25 +00:00
Nicholas Nethercote
8bffd600d5 Qualifying suppression types with the skin name, like this:
memcheck:Addr4

Changed the `name' need of the memcheck skin from "valgrind" to "memcheck" for
this.  But the name Valgrind will return when I print core and skin names in
the startup message.

One issue is that some skins share suppression types, eg. memcheck and
addrcheck.  Might be useful to allow multi-skin suppressions, viz:

  memcheck,addrcheck:Addr4

This won't be too hard to tack on, though.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1163
2002-10-02 11:02:27 +00:00
Julian Seward
e959615698 Fix build problems on SuSE 8.1 -- -I.. not included in compile cmds
for .S files.  Possibly due to the presence of the following on this dist:

  autoconf (GNU Autoconf) 2.53
  automake (GNU automake) 1.6.3


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1148
2002-10-01 00:18:22 +00:00
Julian Seward
81b048c0c2 Remove comment that nobody can make sense of.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1147
2002-09-30 23:22:54 +00:00
Julian Seward
1938a2fc05 Teach memcheck about instrumenting {GET,PUT,USE}SEG.
Also implement MOV Sw,Ew.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1141
2002-09-30 21:52:50 +00:00
Nicholas Nethercote
f73db69709 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1140
2002-09-30 13:18:41 +00:00
Nicholas Nethercote
4cd67f62e6 Converted all functions visible from vg_skin.h with names in CamelCaps to
use_under_scores instead, to be consistent.

Also added some missing 'extern's on function declarations in vg_skin.h.

Also added a quick note in vg_regtest.in on the simplest way to run regression
tests.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1135
2002-09-30 10:23:54 +00:00
Nicholas Nethercote
284d18dc8f wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1126
2002-09-27 11:45:30 +00:00
Nicholas Nethercote
1a927a7334 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1120
2002-09-27 10:12:45 +00:00
Julian Seward
d3b9709488 merge rev 1.16.2.3:
Fix bug in 108-byte load/stores.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1114
2002-09-27 01:11:36 +00:00
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