105 Commits

Author SHA1 Message Date
Nicholas Nethercote
f174930b23 Final commit for the initial modularisation pass:
- Broke part of m_scheduler off into a new module m_threadstate.  It
  contains ThreadState, VG_(threads)[] and some basic operations on the
  thread table.  All simple stuff, the complex stuff stays in m_scheduler.
  This avoids lots of circular dependencies between m_scheduler and other
  modules.

- Managed to finally remove core.h and tool.h, double hurrah!

- Introduced pub_tool_basics.h and pub_core_basics.h, one of which is
  include by every single C file.

- Lots of little cleanups and changes related to the above.

- I even did a small amount of documentation updating.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3944
2005-06-19 01:24:32 +00:00
Nicholas Nethercote
3ae4d1a0ab A cleanup of the redirection stuff.
- Renamed VG_INTERCEPT as VG_REPLACE_FUNCTION to make its purpose
  clearer.

- Renamed VG_WRAPPER as VG_NOTIFY_ON_LOAD to make its purpose cleare.
  Started calling that stuff "load notification".

- Moved various things into m_redir.c, a much more sensible place for
  them.  This reduced the number of exported functions overall.  Renamed
  intercept_demangle() as Z_decode() as part of this.

- Improved the documentation of this stuff, especially in
  pub_core_redir.c.

- Got --run-libc-freeres=yes working again.  It was doing nothing.

- Renamed vg_inject.so as vg_preload_core.so to match
  vg_preload_<tool>.so

- Renamed vg_intercept.c as vg_preloaded.c.  (I kept the "vg_" prefix
  because this filename can appear in stack traces, so the "vg_" is a
  useful hint for users that it belongs to Valgrind.)

- Removed all the Memcheck-specific calls to add_redirect_sym_to_sym()
  from VG_(setup_redirect_table)(), instead using VG_REPLACE_FUNCTION in
  mac_replace_strmem.c, just like vg_replace_malloc.c.  This is the
  right way to do it.  This required moving some of
  coregrind/pub_core_redir.h into the newly added
  include/pub_tool_redir.h.  add_redirect_sym_to_sym() is no longer
  used...

- Now only handing off symbols to m_redir for inspection/decoding after
  they have been deemed to be interesting by the symbol table reader.

- Factored out commonality between the add_redirect_*_to_* functions
  into add_redirect_X_to_X().

- Added "Zh", meaning '-' ('h' for "hyphen"), to the Z-decoding scheme,
  to handle sonames like "ld-linux-x86-64.so.2".

- Added a FAQ explaining the newly found issue of glibc aliasing 
  sometimes causing the wrong function name to appear in stack traces.

- Added a new regtest strchr.c.  It's possible this will fail on some
  platforms.  If so, an alternative output file can be provided, but
  I'd like to see it in practice first.

It's possible that there will be minor breakage on other
platforms/setups, but it should be minimal and easily fixable.

Plus some ordinary cleanups in symtab.c:

- Removed the old optimisation from VG_(addStr)() whereby it kept track
  of the previous 5 added strings and avoiding duplicating any of them.
  Turns out it was barely having any effect any more, and just
  complicated things.

- Made read_symtab() more readable, by introducing a new variable
  "sym_name" and introducing the auxiliary function
  is_symbol_interesting().

- renamed the module variable 'segInfo' as 'segInfo_list' to make it
  more obvious it's a module variable and not just some ordinary local
  variable (which was an easy mistake to make).

-----------------------------------------------------------------------------

XXX: [later] remove add_redirect_sym_to_sym, and everything related to
     X_to_sym?  (ie. only need X_to_addr)

XXX: better function names?  all those 'resolved' names...
     [later...]




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3916
2005-06-16 03:56:58 +00:00
Julian Seward
ced9276574 Updated date :-)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3907
2005-06-13 16:50:29 +00:00
Donna Robinson
ff4eb2863e mc-tech-docs.xml:
- fixed link to comply with house-style
mc-manual.xml:
- rm'd unhelpful sentence + it's footnote
quick-start-guide.xml:
- fixed up some section ids + xreflabels 
  so we don't get cool filenames like 'bk01s02.html'.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3898
2005-06-12 10:23:23 +00:00
Robert Walsh
5d35d711ba Implement stack registration client requests. See the documentation
in the user manual for usage information.  The stack_changes.c file in
corecheck/tests contains a short example.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3846
2005-06-04 20:42:33 +00:00
Nicholas Nethercote
f9923039ae Eliminated VGP_DO_MMAP. Replaced it with VG_(mmap_native)(), which was
derived from mmap_inner().

As a consequence, $PLATFORM/core_platform.h files are no longer necessary,
hooray!





git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3813
2005-05-29 18:46:38 +00:00
Nicholas Nethercote
df94111968 Removed the core_arch_asm.h files. The OYNK macros now live in tool_asm.h,
at least for the moment.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3748
2005-05-16 21:30:24 +00:00
Nicholas Nethercote
09cb7d57d1 Add note to FAQ about unloaded shared objects and leak errors.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3719
2005-05-15 14:49:24 +00:00
Nicholas Nethercote
0ed704cb75 Update FAQ about GLIBCXX_FORCE_NEW name-change.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3678
2005-05-12 13:45:56 +00:00
Nicholas Nethercote
a08662c48c Big clean-up: changed the core/tool interface to be mediated entirely
through the VG_(tdict) function dictionary, rather than using TL_(foo)
functions.

This facilitated the following changes:

- Removed the "TL_" prefix, which is no longer needed.

- Removed the auto-generated files vg_toolint.[ch], which were no longer
  needed, which simplifies the build a great deal.  Their (greatly
  streamlined) contents went into core.h and vg_needs.h (and will soon
  go into a new module defining the core/tool interface).  
  
  This also meant that tool.h.base reverted to tool.h (so no more
  accidentally editing tool.h and not having the changes go into the
  repo, hooray!)  And gen_toolint.pl was removed.  And toolfuncs.def was
  removed.

- Removed VG_(missing_tool_func)(), no longer used.

- Bumped the core/tool interface major version number to 8.  And I
  killed the minor version number, which was never used.  The layout
  of the ToolInfo struct is such that this should not cause problems.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3644
2005-05-09 01:02:08 +00:00
Julian Seward
d86f35b2dc New flag --trace-cfi=yes|no [no], which is for debugging the CFI reader.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3583
2005-05-01 08:55:38 +00:00
Nicholas Nethercote
d1017a6cd9 Fix two typos.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3531
2005-04-16 14:58:34 +00:00
Nicholas Nethercote
97300c75b9 Remove --sloppy-malloc from man page.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3523
2005-04-05 21:06:56 +00:00
Julian Seward
394ef03a88 Get rid of the --sloppy-malloc= flag and the functionality it
controlled (rounding user malloc requests up to a multiple of 4).
Subsequent changes to memcheck made it more or less pointless, it is a
time waster in the malloc/free path, and nobody ever used it AFAIK.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3522
2005-04-05 20:59:55 +00:00
Julian Seward
0e735dde57 In vg_memory.c, allow the stack-change threshold to be specified by a
command-line flag (--max-stackframe=number), rather than hardwiring it
to 2000000.  This is helpful for dealing with unruly Fortran programs
which want to allocate large arrays on the stack.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3512
2005-04-02 23:40:59 +00:00
Tom Hughes
1f84a3f9ad It seems deref_UInt is fine - socklen_t is a 32 bit value on amd64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3502
2005-04-02 15:04:15 +00:00
Tom Hughes
1402d02a6e Remove a coupld of entries that have been dealt with.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3500
2005-04-02 14:46:54 +00:00
Nicholas Nethercote
1a0b185acf Remove an out-of-date FAQ, putting the still-relevant part in another
question.  Man, double maintenance sucks.  And when/how does the website FAQ
get updated...?



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3465
2005-03-27 17:05:08 +00:00
Nicholas Nethercote
36e86a9542 Add VG_ prefix to SKIPLIST_INIT and IS_*_ALIGNED macros. Also pull
IS_PAGE_ALIGNED into tool.h with the others.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3457
2005-03-27 01:42:41 +00:00
Nicholas Nethercote
27066dbfc5 Don't use the VGP_ for profiling any more, just use VG_ -- we want to use
VGP_ for platform-specific things.  



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3435
2005-03-26 00:42:02 +00:00
Nicholas Nethercote
6c7e08a8f5 Documentation update. This should bring the core of the documentation
up to date with reality.  Please give this a proofread.

I ran out of steam at memcheck/docs/mc_techdocs.html, which is even more
hopelessly out of date.  I will note that cacheprof.org is some kind of
dental insurance company now...

MERGED, PAINFULLY, FROM CVS HEAD



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3321
2005-03-12 22:14:42 +00:00
Nicholas Nethercote
e11bfa612d Add what I think is needed for the man page in the Makefile.am.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3317
2005-03-12 21:06:06 +00:00
Nicholas Nethercote
107c7fac44 Added Valgrind man page. (Ultimately, it would be best if this were
auto-generated from the XML manual somehow, to avoid double maintenance.
Still, put it in for now.)

MERGED FROM CVS HEAD



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3316
2005-03-12 21:02:52 +00:00
Nicholas Nethercote
05fe123a9e Update copyright notice for 2005 on all relevant files. Don't bother trying
to be selective about it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3303
2005-03-12 16:22:54 +00:00
Nicholas Nethercote
eed8fe1fb2 Remove now-unnecessary FAQ. (Was removed from the text FAQ.txt a while
ago.)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3273
2005-03-11 04:38:00 +00:00
Nicholas Nethercote
b03e168042 Remove now-irrelevant FAQ.
(This change went into the text FAQ.txt a while ago.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3272
2005-03-11 04:36:46 +00:00
Nicholas Nethercote
e2c5384124 De-document now-defunct command line options.
MERGED FROM CVS HEAD


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3271
2005-03-11 04:35:00 +00:00
Nicholas Nethercote
c3187ad891 Added the Quick Start Guide, in XML. Not entirely happy with the formatting
(it should be all one page), but it's a start.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3270
2005-03-11 04:33:29 +00:00
Nicholas Nethercote
0331bb5f9e Fix broken xml tags.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3267
2005-03-11 02:43:17 +00:00
Julian Seward
d5b545da24 These files are no longer needed. Bye!
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3266
2005-03-11 00:22:10 +00:00
Julian Seward
7c542ccd39 Add new files resulting from merging in the 2.4.0 line. Many of these
seem to be simply duplication of the x86 instruction set tests into
the addrcheck and helgrind trees.  I'm not sure what this duplication
achieves.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3264
2005-03-10 23:23:45 +00:00
Julian Seward
9b03779a20 Implement --log-file-exactly= for when the user wants to specify
*exactly* the log file name.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3220
2005-01-11 14:01:02 +00:00
Julian Seward
6c9a668a42 Add a new variant for --gen-suppressions: --gen-suppressions=all,
which just prints a suppression for all reported errors without asking
questions.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3219
2005-01-10 17:24:47 +00:00
Nicholas Nethercote
1058f672a3 Added a short document explaining the directory structure and how to
find things in header files.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3177
2004-12-01 11:54:07 +00:00
Nicholas Nethercote
d406dc046a Added a short doc listing places that I know or suspect are not 64-bit
clean.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3176
2004-12-01 11:11:56 +00:00
Nicholas Nethercote
71525a2d57 Updated docs with all the changes that I'm aware of that happened since
Donna converted them to XML.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3173
2004-12-01 00:02:36 +00:00
Nicholas Nethercote
f14fd8b2a1 Added a short document about how to port to a new arch or OS.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3170
2004-11-30 19:27:02 +00:00
Nicholas Nethercote
d3a7dba217 Another todo item.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3162
2004-11-30 14:10:13 +00:00
Nicholas Nethercote
ed7ce225ed Another todo item.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3161
2004-11-30 14:09:22 +00:00
Nicholas Nethercote
4370a34af5 Updated todo list.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3160
2004-11-30 14:08:24 +00:00
Nicholas Nethercote
f6ce991fe4 Fix PS/PDF generation somewhat; the Makefile syntax errors are now
fixed, although latex now runs out of memory when doing it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3159
2004-11-30 14:05:38 +00:00
Nicholas Nethercote
86e69e77cd Minor docs building fix.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3154
2004-11-30 11:10:01 +00:00
Nicholas Nethercote
7a75a9f583 Overhauled the docs. Removed all the HTML files, put in XML files as
converted by Donna.  Hooked it into the build system so they are only
built when specifically asked for, and when doing "make dist".

They're not perfect;  in particular, there are the following problems:
- The plain-text FAQ should be built from FAQ.xml, but this is not
  currently done.  (The text FAQ has been left in for now.)

- The PS/PDF building doesn't work -- it fails with an incomprehensible
  error message which I haven't yet deciphered.

Nonetheless, I'm putting it in so others can see it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3153
2004-11-30 10:43:45 +00:00
Julian Seward
9e22a94ec3 version -> 2.2.0
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2634
2004-08-31 00:15:02 +00:00
Nicholas Nethercote
0db27515b1 Putting "dist_" in front of a "_DATA" variable means it is included in "make
dist".  This avoids the need to put it in "EXTRA_DIST", and saves a few lines
in all the docs Makefile.am files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2614
2004-08-25 11:40:07 +00:00
Julian Seward
cd4b5cdf82 Version wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2502
2004-07-17 23:44:48 +00:00
Nicholas Nethercote
563c4e566a Adding Massif, the heap profiler.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2245
2004-02-14 16:40:02 +00:00
Nicholas Nethercote
1f7c6e9d1f Updated the manual for some recent changes, esp. the fact that Memcheck is no
longer the default.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2216
2004-01-21 13:59:23 +00:00
Julian Seward
a357fb40f4 Change date.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2108
2003-12-14 00:27:23 +00:00
Julian Seward
020aaa82b4 ---> 2.1.0
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2107
2003-12-14 00:15:23 +00:00