History log of /external/valgrind/memcheck/mc_include.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8e3fbb5cd8276a7d07d5712bc05f9b3376d81a6a 20-Oct-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Constify the tool interface.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14642 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
09a4c794458cdb9dea743fa40e450150a2725257 18-Oct-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Change the definition of VgHashTable to not have pointer type.
This is (a) consistent with how the other containers are defined
and, more importantly, (b) allows the constification of the hash table API.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14639 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
3e81b8bed1f7ab6848a83f5507487131a6f9d778 07-Oct-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge revisions 14230, 14602, and 14604 from the BUF_REMOVAL branch to trunk.
The change eliminates the fixed size buffers in gen_suppression and
show_used_suppressions. This is achieved by changing the return type from
VG_TDICT_CALL(tool_get_extra_suppression_info and
VG_TDICT_CALL(tool_print_extra_suppression_use from Bool to SizeT.
A return value of 0 indicates that nothing (except the terminating '\0'
which is always inserted) was written to the buffer. This corresponds to the
previous False return value. A return value which is equal to the buffer
size (that was passed in as function argument) indicates that the buffer was
not large enough. The caller then resizes the buffer and retries.
Otherwise, the buffer was large enough.
Regtested with a resize value of 1.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14606 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
3c0c94777f547bcb5eadbe8cb4328debf0f51875 24-Sep-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Ripple from constifying parameters of instrumentation functions and
callbacks from VexTranslateArgs. See VEX r2958.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14564 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
021e6b676376a6654204ebf107876c5145c22222 22-Aug-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Memcheck: add a new flag, --show-mismatched-frees=no|yes [yes], to
optionally disable allocator/deallocator mismatch checking.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14336 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
ec905f7ed1659f2251045114c785659fbb11ea88 17-Aug-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> The attached patch cleanups the clo processing
of clo which are (or should be) 'enum set'.

* pub_tool_options.h : add new macrox VG_USET_CLO and VG_USETX_CLO to
parse an 'enum set' command line option (with or without "all" keyword).

* use VG_USET_CLO for existing enum set clo options:
memcheck --errors-for-leak-kinds, --show-leak-kinds, --leak-check-heuristics
coregrind --vgdb-stop-at

* change --sim-hints and --kernel-variants to enum set
(this allows to detect user typos: currently, a typo in a sim-hint
or kernel variant is silently ignored. Now, an error will be given
to the user)

* The 2 new sets (--sim-hints and --kernel-variants) should not make
use of the 'all' keyword => VG_(parse_enum_set) has a new argument
to enable/disable the use of the "all" keyword.

* The macros defining an 'all enum' set definition was duplicating
all enum values (so addition of a new enum value could easily
give a bug). Removing these macros as they are unused
(to the exception of the leak-kind set).
For this set, the 'all macro' has been replaced by an 'all function',
coded using parse_enum_set parsing the "all" keyword.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14301 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
7c69a3edda5335fa4c60f8161252b4bab8a76f7e 21-Jul-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a new heuristic 'length64' to detect interior pointers
pointing at offset 64bit of a block, when the first 8 bytes contains
the block size - 8. This is e.g. used by sqlite3MemMalloc.

Patch by Matthias Schwarzott (with small modif)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14179 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
7b6899dd211aafa1e0d3e3a0dc0cf798ea882768 13-Jul-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Provide a back trace when a function argument of a known allocation
function is presumably negative. Fixes BZ 79311.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14157 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 18-Oct-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates (20XY-2012 ==> 20XY-2013)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
4e32d67a5b880bf1d871c5141822078d4dcdc3ac 18-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Allow tools to provide some statistics in suppression list produced at the end

Option -v outputs a list of used suppressions. This only gives
the nr of times a suppression was used.
For a leak search, this only gives the nr of loss records that
have been suppressed, but it does not give additional needed details
to understand more precisely what has been suppressed
(i.e. nr of blocks and nr of bytes).

=> Add in the tool interface update_extra_suppression_use and
print_extra_suppression_info functions to allow the tool to record
additioonal use statistics for a suppression. These statistics
can be done depending on the error (and its data) which is suppressed.

Use this in memcheck for the leak suppressions, to maintain and output
the nr of blocks and bytes suppressed by a suppression during
the last leak search.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13651 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
5bd40601a929e8216b1c4b98d5048dddd2c2c20e 02-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix assert for who_points_at monitor cmd for an interiorly pointed block

* fix the assert
* some better comments
* update test to verify who_points_at behaviour with an interiorly pointed block



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13609 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
ab1fce9bfb9742bffdfbd7ea9e4dad04ffb17819 29-Sep-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> add heuristics decreasing false possible "possible leaks" in c++ code.

The option --leak-check-heuristics=heur1,heur2,... can activate
various heuristics to decrease the number of false positive
"possible leaks" for C++ code. The available heuristics are
detecting valid interior pointers to std::stdstring, to new[] allocated
arrays with elements having destructors and to interior pointers pointing
to an inner part of a C++ object using multiple inheritance.

This fixes 280271 Valgrind reports possible memory leaks on still-reachable
std::string

This has been tested on x86/amd64/ppc32/ppc64.

First performance measurements seems to show a neglectible impact on
the leak search.

More feedback welcome both on performance and functional aspects
(false positive 'possibly leaked' rate decrease and/or
false negative 'possibly leaked' rate increase).

Note that the heuristic is not checking that the memory has been
allocated with "new" or "new[]", as it is expected that in some cases,
specific alloc fn are used for c++ objects instead of the standard new/new[].
If needed, we might add an option to check the alloc functions
to be new/new[].



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13582 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
6756454dd872134b243a7a4ff43b953c5bb309ee 16-Aug-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for direct V256 shadow helper returns -- memcheck side.
(Patrick J. LoPresti, lopresti@gmail.com). Bug 294285.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13500 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
21a5f8cd6b05e19a644ee9a9f8623f0be1d4badc 08-Aug-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix # 294285: --partial-loads-ok does not work for 16-byte SSE loads
(core fixes for the memcheck handling of 128 bit loads)
(Patrick J. LoPresti, lopresti@gmail.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
362441db825242200142a91bb07c4a0300b36a3e 23-Jul-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> fix incorrect lineno in supp error msgs+ -v give filename+lineno of used supp.

If a suppression file contains an error, the lineno reported could be wrong.
Also, give filename and lineno of the used suppressions in -v debugging output.

The fix consists in ensuring that tool specific read_extra function gets
the Int* lineno pointer, together with other VG_(get_line) parameters.






git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13469 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8617b5b8f16570c9003379464d60e8572a801a8c 12-Jan-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Implement --keep-stacktraces=alloc|free|alloc-and-free|alloc-then-free|none

The option --keep-stacktraces controls which stack trace(s) to keep for
malloc'd and/or free'd blocks. This can be used to obtain more information
for 'use after free' errors or to decrease Valgrind memory and/or cpu usage
by recording less information for heap blocks.

This fixes 312913 Dangling pointers error should also report the alloc
stack trace.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13223 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
2193a7c20b74867de85a5ac10e7db5c7038f7c8a 08-Dec-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix 284540 and 307465
284540 Memcheck shouldn't count suppressions matching still-reachable allocations
307465 --show-possibly-lost=no should bring down the error count / exit code

Using the options --show-leak-kinds=kind1,kind2,.. and
--errors-for-leak-kinds=kind1,kind2,.., each leak kind (definite, indirect,
possible, reachable) can now be individually reported and/or counted as
an error.
In a leak suppression entry, an optional line 'match-leak-kinds:'
controls which leak kinds are suppressed by this entry.
This is a.o. useful to avoid definite leaks being "catched"
by a suppression entry aimed at suppressing possibly lost blocks.
Default behaviour is the same as 3.8.1

Old args (--show-reachable and --show-possibly-lost) are still accepted.

Addition of a new test (memcheck/tests/lks) testing the new args
and the new suppression line.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13170 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
19f91bbaedb4caef8a60ce94b0f507193cc0bc10 10-Nov-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix more Char/HChar mixups. Closing in...


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13119 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
dbb3584f591710a15a437918c0fc27e300993566 27-Oct-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> More Char/HChar fixes and constification.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13088 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
e543f3024ace2925a0fb81985e9fcfc95b8c555a 21-Oct-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> First round of Char/HChar fixups for coregrind and memcheck.
Little bit of ripple in tools, too.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13074 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
a5f894c271248c13e0bb387e5ca33fa122b4819c 21-Oct-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> First round of Char/HChar fixes for memcheck.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13071 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
ca503be79ca377d89b1692c37c97a06ed14dad3b 07-Oct-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> This is the 2nd installment of the cache info reorganisation.
The host's VexArchInfo is passed to the tool instrumentation
functions. Purely mechanic patch.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13031 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
03f8d3fc25f5a45c5826259d1b33b7f310117279 05-Aug-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates to include 2012.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
d99c26a4bc18fd3b17c4626c9c1fbd1583388660 01-Aug-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Implement --redzone-size and --core-redzone-size

* For tools replacing the malloc library (e.g. Memcheck, Helgrind, ...),
the option --redzone-size=<number> allows to control the padding
blocks (redzones) added before and after each client allocated block.
Smaller redzones decrease the memory needed by Valgrind. Bigger
redzones increase the chance to detect blocks overrun or underrun.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12807 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
45fa9f4bd1819c7ac0d9469df4e35cee0c130153 21-May-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add initial support for Intel AVX instructions (Valgrind side).
Tracker bug is #273475.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12569 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
a22f59db02284784a1e5e51587e2ce09db3a2a18 27-Jan-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> (fixes bug 289939 wish: complete monitor cmd 'leak_check' with details
about leaked or reachable blocks)

This patch implements two new memcheck gdbserver monitor commands:
block_list <loss_record_nr>
after a leak search, shows the list of blocks of <loss_record_nr>
who_points_at <addr> [<len>]
shows places pointing inside <len> (default 1) bytes at <addr>
(with len 1, only shows "start pointers" pointing exactly to <addr>,
with len > 1, will also show "interior pointers")


Compiled and reg-tested on f12/x86, deb5/amd64, f16/ppc64.

The 'block_list' command is implemented on top of the
lr_array/lc_chunks/lc_extras arrays used during the last leak search.
NB: no impact on the memory for the typical Valgrind usage where a leak
search is only done at the end of the run.
Printing the block_list of a loss record simply consists in scanning the
lc_chunks to find back the chunks corresponding to the loss record for which
block lists is requested.

The 'who_points_at' command is implemented by doing a scan similar to
(but simpler than) the leak search scan.
lc_scan_memory has been enhanced to have a mode to search for a specific
address, rather than to search for all allocated blocks.
VG_(apply_to_GP_regs) has been enhanced to also provide the ThreadId and
register name in the callback function.

The patch touches multiple files (but most changes are easy/trivial or factorise
existing code).

Most significant changes are in memcheck/mc_leakcheck.c :
* changed the LC_Extra struct to remember the clique for indirect leaks
(size of structure not changed).
* made lr_array a static global
* changed lc_scan_memory:
to have a search mode for a specific address (for who_points_at)
(for leak search) to pass a 'current clique' in addition to the clique
leader
so as to have a proper clique hierarchy for indirectly leaked blocks.
* print_results: reset values at the beginning of the print_result of the
next leak search, rather than at the end of print_results of the previous
leak search.
This allows to continue showing the same info for loss records till a new
leak search is done.
* new function print_clique which recursively prints a group of leaked
blocks, starting from the clique leader.
* new function MC_(print_block_list) : calls print_clique for each clique
leader found for the given loss record.
* static void scan_memory_root_set : code extracted from
MC_(detect_memory_leaks) (no relevant change)
* void MC_(who_points_at) : calls scan_memory_root_set, lc_scan_memory
and VG_(apply_to_GP_regs)(search_address_in_GP_reg) to search
pointers to the given address.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12357 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
6643e96a72e8530a7c8830c02ffb2fb4aee74c88 17-Jan-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fixes 282230 group allocator for small fixed size, use it for MC_Chunk/SEc vbit

* new files include/pub_tool_groupalloc.h and coregrind/m_groupalloc.c
implementing a group allocator (based on helgrind group alloc).
* include/Makefile.am coregrind/Makefile.am : added pub_tool_groupalloc.h
and m_groupalloc.c
* helgrind/libhb_core.c : use pub_tool_groupalloc.h/m_groupalloc.c
instead of the local implementation.
* include/pub_tool_oset.h coregrind/m_oset.c : new function
allowing to create an oset that will use a pool allocator.
new function allowing to clone an oset (so as to share the pool alloc)
* memcheck/tests/unit_oset.c drd/tests/unit_bitmap.c : modified
so that it compiles with the new m_oset.c
* memcheck/mc_main.c : use group alloc for MC_Chunk
memcheck/mc_include.h : declare the MC_Chunk group alloc
* memcheck/mc_main.c : use group alloc for the nodes of the secVBitTable OSet
* include/pub_tool_hashtable.h coregrind/m_hashtable.c : pass the free node
function in the VG_(HT_destruct).
(needed as the hashtable user can allocate a node with its own alloc,
the hash table destroy must be able to free the nodes with the user
own free).
* coregrind/m_gdbserver/m_gdbserver.c : pass free function to VG_(HT_destruct)
* memcheck/mc_replace_strmem.c memcheck/mc_machine.c
memcheck/mc_malloc_wrappers.c memcheck/mc_leakcheck.c
memcheck/mc_errors.c memcheck/mc_translate.c : new include needed
due to group alloc.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12341 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8423490aad3a068849eca1ee741f3ca669ab01f1 14-Jan-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added a new parameter to the memcheck 'leak_check' GDB monitor command
to let the user specify a max nr of loss records to output : on huge
applications, interactive display of a lot of records in gdb can
take a lot of time.


* mc_include.h :
- added UInt max_loss_records_output; to LeakCheckParams structure
- avoid passing LeakCheckParams by struct copy.
* modified test gdbserver_tests/mcleak to test the new parameter
* mc_main.c : parse or set max_loss_records_output in leak_check cmd
handling and calls.
* mc-manual.xml : document new leak_check parameter
* mc_leakcheck.c :
- extract printing rules logic in its own function
- in print_results, if there is a limit in LeakCheckParam,
compute from where the printing of loss records has to start





git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12329 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
ec062e8d96a361af9905b5447027819dfbfee01a 23-Oct-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update all copyright dates, from 20xy-2010 to 20xy-2011.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
403d8aada736841ca05764ffe12ca78435c01d3a 22-Oct-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Improvements in freelist handling for Memcheck. See #250065.

(Philippe Waroquiers, philippe.waroquiers@skynet.be)

This patch provides three improvements in the way the free list is
handled in memcheck.

First improvement: a new command line option --freelist-big-blocks
(default 1000000) specifies the size of "free list big blocks".
Such big blocks will be put on the free list, but will be re-cycled first
(i.e. in preference to block having a smaller size).
This fixes the bug https://bugs.kde.org/show_bug.cgi?id=250065.
Technically, the freed list is divided in two lists : small
and big blocks. Blocks are first released from the big block list.

Second improvement: the blocks of the freed list are re-cycled before
a new block is malloc-ed, not after a block is freed.
This gives better error messages for dangling pointer errors
when doing many frees without doing malloc between the frees.
(this does not uses more memory).

Third improvement: a block bigger than the free list volume will be
put in the free list (till a malloc is done, so as the needed memory
is not bigger than before) but will be put at the beginning of the
free list, rather than at the end. So, allocating then freeing such a
block does not cause any blocks in the free list to be released.

Results of the improvements above, with the new regression test
memcheck/test/big_blocks_freed_list: with the patch, 7 errors
are detected, 6 are giving the (correct) allocation stack.
Without the patch, only 6 errors are detected, 5 errors without
allocation stack, 1 with a (wrong) allocation stack.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12202 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
30b3eca94e609214d9ac8dabfee9be3f3ab46d85 28-Jun-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> valgrind and tool mon. cmds prefixes changes + doc fixes + new vgdb option
--cmd-time-out

* changed prefixes of Valgrind core monitor commands from vg. to v.
* removed prefixes of Tool monitor commands
* memcheck leak_check 'leakpossible' arg renamed to 'possibleleak'
* memcheck make_memory 'ifaddressabledefined' arg renamed to
'Definedifaddressable'
(with uppercase D to avoid confusion with 'defined' arg).
* vgdb options
- Some doc updates : more logical option order documentation,
specify 'standalone' for options aimed at standalone usage.
- added option --cmd-time-out for standalone vgdb
(comment of Josef Weindendorfer, needed to interface with a callgrind GUI)
* updated tests according to the above.
* updated documentation according to the above.
* some additional minor doc fixes/clarifications

(Philippe Waroquiers, philippe.waroquiers@skynet.be). Bug 214909
comment 111.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11844 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
c8bd1df6c23e2409512e1e50616e7dc3bae501a2 26-Jun-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Memcheck:
* add delta leak checking functionality
* some editing of related manual sections
(Philippe Waroquiers, philippe.waroquiers@skynet.be). Bug 214909
comment 105.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11838 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
3b290486cd4cd601b20e04340e593c9ed9717e5f 06-May-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Implement a GDB server in Valgrind. See #214909.
(Philippe Waroquiers, philippe.waroquiers@skynet.be)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11727 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
913473803432ee37d6edaf232e21978d4f426125 25-Mar-2011 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add VALGRIND_RESIZEINPLACE_BLOCK() and hence close #267819.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11666 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
3cedf574e2d9e479dd58998ad8f0a187e00329da 26-Aug-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added new memcheck command-line option --show-possibly-lost. Closes #201170.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11292 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
9eecbbb9a9cbbd30b903c09a9e04d8efc20bda33 03-May-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates to 2010.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
588adeffafa8102adcfa7a1c035ae272b35cf86d 16-Aug-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> When generating XML output for suppressions, print the suppression
both wrapped up in XML tags (as before) but also in plain text in a
sequence of CDATA blocks. Normally only one, but in the worst case
the raw data will have ]]> in it, in which case it needs to be split
across two CDATA blocks.

This apparently simple change involved a lot of refactoring of the
suppression printing machinery:

* in the core-tool iface, change "print_extra_suppression_info" (which
prints any auxiliary info) to "get_extra_suppression_info", which
parks the text in a caller-supplied buffer. Adjust tools to match.

* VG_(apply_StackTrace): accept a void* argument, which is passed to
each invokation of the functional parameter (a poor man's closure
implementation).

* move PRINTF_CHECK into put_tool_basics.h, where it should have been
all along

* move private printf-into-an-XArray-of-character functions from
m_debuginfo into m_xarray, and make them public

* gen_suppression itself: use all the above changes. Basically we
always generate the plaintext version into an XArray. In text mode
that's just printed. In XML mode, we print the XMLery as before,
but the plaintext version is dumped into a CDATA block too.

* update the Protocol 4 specification to match all this.

This still isn't 100% right in the sense that the CDATA block data
needs to be split across multiple blocks if it should ever contain the
CDATA end mark "]]>". The Protocol 4 spec has this right even though
the implementation currently doesn't.

Fixes #191189.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10822 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
18afe5d1c3dc9e4e16d3e10617d6afa4bf9fcd40 10-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Try to fix error_counts.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10768 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
b965efb4990bdedc3215ffcca8ea566d25874d26 10-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Allow custom blocks to overlap with malloc blocks. Fixes bug 100628.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10765 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
35db56c19847654f22b62da059083d41ff4258c5 24-Jul-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> A fix for bug 186796: suppression symbol names were being truncated if they
were longer than 200 chars. Now dynamic memory is used and so they can be
arbitrarily long in theory, although in practice it bombs out at 100,000 for
sanity purposes. This required adjusting the core/tool interface for
read_extra_suppression_info().


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10581 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
6b523cd2df025375e86b161de9995187edf2fcb6 15-Jul-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge memcheck/ changes from branches/MESSAGING_TIDYUP r10464.
See trunk r10465 commit message for details.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10467 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
29a5c01528ca7cffe17880a038b4563de920f08d 06-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix bug #191182, where printing the leak checker results was really slow if
there were a lot of loss records.

The fix was:
- Avoid the O(m * n) looping over the chunks when creating the loss
records, by putting loss records into an OSet instead of a list, which
makes duplicate detection for each chunk an O(log n) operation instead of
an O(n) operation.
- Avoid the looping over loss records which was used to do a poor
man's sort, but was O(n^2). Instead copy pointers to the loss records
from the OSet into an array and sort it normally with VG_(ssort) (n log n,
usually) before printing.

This approach was similar to that used in the patch Philippe attached to the
bug report.

Other changes:
- Added Philippe's test programs in the new memcheck/perf directory. It
used to take 57s on my machine, now it takes 1.6s.
- Cleaned up massif/perf/Makefile.am to be consistent with other Makefiles.
- Improved some comments relating to VgHashTable and OSet.
- Avoided a redundant traversal of the hash table in VG_(HT_to_array), also
identified by Philippe..
- Made memcheck/tests/mempool's results independent of the pointer size, and
thus was able to remove its .stderr.exp64 file.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9781 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
b7a4e2ea4e1adfda6bf2d7e3c448f663c5d173a9 01-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Renamed various things for clarity. Added some comments. And fixed the
dubious find-minimum-loss-record loop in print_results(), which was using an
inconsistent mixture of szB and szB+indirect_szB.

Two test results changed, just different sort orders for same-sized loss
records.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9704 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
9f207460d70d38c46c9e81996a3dcdf90961c6db 10-Mar-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Updated copyright years.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8225cc0de2ccf390127b5910dceb7c6185091a38 09-Mar-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> This commit completely overhauls the leak checker. In particular:

- It heavily refactors the code: uses better names for things, splits up
complex functions that behaved very differently depending on how they were
called, removes some redundancies, and generally makes it much simpler and
easier to follow.

- It adds lots of comments, both inline, and also a big explanatory one at
the top which makes it clear exactly how the leak checker works and also
exactly what is meant by definite, possible, and indirect leaks. It also
has some ideas for future improvements.

- All tabs have been converted to spaces.

It also improves the functionality:

- Previously if you did --leak-check=summary, indirect and suppressed
blocks were counted as definite leaks. Now they are done properly, and so
the summary results from --leak-check=summary match those from
--leak-check=yes.

- Previously, some possibly reachable blocks were miscategorised as
definitely reachable, because only the pointer to the block itself was
considered, not any preceding pointers in the chain. This is now fixed.

- Added memcheck/tests/leak-cases, which fully tests all the possible
combinations of directly/indirectly reachable and possibly/definitely
reachable.

And it improves the manual quite a bit, and the FAQ a little bit.

This doesn't fix the leak checker to handle MALLOCLIKE_BLOCK works that have
been taken from within malloc'd blocks, but I think I know how to do it and
hope to do so in a subsequent commit.

It also changes all instances of "<constant>memcheck</constant>" in the
Memcheck manual to "Memcheck", for consistency and because "Memcheck" is
easier to write. There's one similar case for DRD but I didn't change that.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9330 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8df80b22d8f0ed19fb2d7ac7267b8015b202f661 02-Mar-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge r9299..r9303 (various leak-check test fixes) from the DARWIN branch.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9304 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
1dcee097db02f9ef3ba355162c4373d90d0e895c 24-Feb-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove a number of unused parameters, found with -Wunused-parameter.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9248 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8b140dee891a850c09d27f316df913acc7d7bae7 17-Feb-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> In the core, include malloc_usable_size() as one of the functions that must
be replaced if malloc() et al are replaced by a tool. This is because
different tools implement the function in different ways.

Add an appropriate malloc_usable_size() replacement to each of Memcheck,
Helgrind, DRD, Ptrcheck, Massif.

Update memcheck/tests/malloc_usable and add massif/tests/malloc_usable.

Merged from the DARWIN branch.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9193 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
505a819357c173778e2748d2666a576cd8ac6e9f 18-Jul-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix a silly mistake resulting in a bunch of global variables being
defined in all the object files in Memcheck.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8445 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
56adc358fd23a1b1d9e331ca63f773aca1ec0953 02-May-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Minor cleanups:

* remove 'extern' in all the headers, as that is irrelevant and wastes
horizontal space

* fix some 64-bit uncleanness in client(-defined) block handling

* remove unneeded #includes



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7987 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
7ce7166aeae2d8401f2b3b1f9e6f60be9ae9dd72 02-May-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Move the error management code for Memcheck into a new file,
mc_errors.c, as it is relatively self contained. This reduces the
size of mc_main.c by about 1350 lines.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7986 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
7cf4e6b6aed533af53339f36099ed244dc4a5b7f 01-May-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge branches/OTRACK_BY_INSTRUMENTATION into the trunk. This adds
support to Memcheck for tracking the origin of uninitialised values,
if you use the --track-origins=yes flag.

This currently causes some Memcheck regression tests to fail, because
they now print an extra line of advisory text in their output. This
will be fixed.

The core-tool interface is slightly changed. The version number for
the interface needs to be incremented.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7982 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
4d474d086188fd1f29fa97dbd84d8ea2e589a9b8 11-Feb-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates ("200X-2007" --> "200X-2008").


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
eb0fa9345010077e1e4852b238dde303b8f271b3 30-Nov-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> New options for Memcheck, --malloc-fill=<hexnumber> and
--fill-free=<hexnumber>, which cause malloc'd(etc) and free'd(etc)
blocks to be filled with the specified value. This can apparently be
useful for shaking out hard-to-track-down memory corruption. The
definedness/addressability of said areas is not affected -- only the
contents. Documentation to follow.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7259 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
fa4ca3bd2c6ccbbe47adffc55c2b0f663f0b48e8 30-Nov-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make the freed-block-queue volume metrics 64-bit throughout, to avoid
any wierdness on very large machines in the future. Also, double the
default size from 5MB to 10MB, on the basis that programs are now on
average twice as lardy as they were when it was set to 5MB, whenever
that was.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7256 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
bf8c350bbaf032615c54255355ff3ff6bc7baa21 18-Sep-2007 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Change an Int to a SSizeT to avoid overflows. Fixed bug 148174.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6855 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
81651dc1ae8cc13a5c857a0fb4137304ed17aa43 28-Aug-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge, from CGTUNE branch, a cleaned up version of r6742:

Another optimisation: allow tools to provide a final_tidy function
which they can use to mess with the final post-tree-built IR before it
is handed off to instruction selection.

In memcheck, use this to remove redundant calls to
MC_(helperc_value_check0_fail) et al. Gives a 6% reduction in code
size for Memcheck on x86 and a smaller (3% ?) speedup.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6787 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
9ebd6e0c607fa30301b1325874eb8de871c21cc5 08-Jan-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
0b9d74abd0a663b530d290b2b788ddeda46e5400 24-Dec-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Non-functional commit: track IR renaming in vex r1689.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
718d3b11d1d3f2665c05b5670893baf1ad068401 16-Dec-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Completely overhauled the internals of Memcheck's error handling. All the
different error kinds were reusing the same struct for storing their
details. Each one used some but not all the fields, and the AddrInfo was
similar, and it was very confusing.

So I changed MC_Error and AddrInfo to be tagged unions, like Vex's IRExpr and
IRStmt types. The resulting code is a little more verbose but much easier
to understand. I also split up several error kinds, which also made things
simpler. The user-visible behaviour is identical except for a couple of
very minor things that I've documented in the NEWS file for the 3.3.0
release.

Ideally I'd get rid of the Addr and Char* fields in the core Error type,
which are not always used, and do them similarly within tools. But that
would require changing the core/tool interface, so I'm leaving it for the
moment.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6402 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
c740d7660ad140b79e561e0d578ab8435a5a5289 05-Oct-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> A memory pool update from Graydon Hoare.

Here's an update to the mempool move / change client requests and sanity
checking. The following changes are present:

- Added one more (hopefully last) client request, a predicate to
test whether a mempool anchor address is currently tracked.
It turns out mozilla's arena-using code is sufficiently inconsistent
in its assumptions that it's very difficult to phrase the valgrind
client-request annotations without this request. Namely: sometime
arena-init and arena-free operations are assumed to be idempotent.

- Fixed a very rapid tool-memory leak in the mempool sanity check
routine. The previous version of the patch I posted would use all
memory even on my Very Beefy Test Machine within ~15 minutes of
browsing with firefox.

- Added a little logging code to print the counts of pools and chunks
active every ~10000 sanity checks, when running with -v.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6197 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
2c1c9dfe806d62d43768b23c29799dc6a100cb09 28-Jul-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a mempool-trimming client request (Graydon Hoare).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5992 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
e4b0bf07b0ee0a18eacc5aba91686ab5fc1d327b 06-Jun-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
dbf7ca71128c6787ba8a99cbd03c3773ff572d96 31-Mar-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Terminology change: previously in Memcheck we had the four states:

noaccess, writable, readable, other

Now they are:

noaccess, undefined, defined, partdefined

As a result, the following names:

make_writable, make_readable,
check_writable, check_readable, check_defined

have become:

make_mem_undefined, make_mem_defined,
check_mem_is_addressable, check_mem_is_defined, check_value_is_defined

(and likewise for the upper-case versions for client request macros).
The old MAKE_* and CHECK_* macros still work for backwards compatibility.

This is much better, because the old names were subtly misleading. For
example:

- "readable" really meant "readable and writable".
- "writable" really meant "writable and maybe readable, depending on how
the read value is used".
- "check_writable" really meant "check writable or readable"

The new names avoid these problems.

The recently-added macro which was called MAKE_DEFINED is now
MAKE_MEM_DEFINED_IF_ADDRESSABLE.

I also corrected the spelling of "addressable" in numerous places in
memcheck.h.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5802 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
1d0825ff46d57f0ce83c3fa88538a42f67022eee 27-Mar-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge in the COMPVBITS branch to the trunk. This is a big change to
Memcheck, replacing the 9-bits-per-byte shadow memory representation to a
2-bits-per-byte representation (with possibly a little more on the side) by
taking advantage of the fact that extremely few memory bytes are partially
defined.

For the SPEC2k benchmarks with "test" inputs, this speeds up Memcheck by a
(geometric mean) factor of 1.20, and reduces the size of shadow memory by a
(geometric mean) factor of 4.26.

At the same time, Addrcheck is removed. It hadn't worked for quite some
time, and with these improvements in Memcheck its raisons-d'etre have
shrivelled so much that it's not worth the effort to keep around. Hooray!

Nb: this code hasn't been tested on PPC. If things go wrong, look first in
the fast stack-handling functions (eg. mc_new_mem_stack_160,
MC_(helperc_MAKE_STACK_UNINIT)).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5791 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
461df9c36f6a07e4f0c14ae068e8e8e9bd383b26 17-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> These files all speak about instrumentation functions.
Instrumentation functions now take a callback closure structure
(VgCallbackClosure*), so this commit changes the signatures
accordingly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5535 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
f3418c09b8d0bfaca08f9eda97c459bd8ea8b67a 08-Nov-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Get rid of old flags that memcheck no longer has.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5039 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
4ba057cce1d81a949f5a899b5abb99e90a731bcc 18-Oct-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Change the core-tool interface so that tools are fully aware of both
the guest extents for the presented translation and also its original
un-redirected guest address. These changes are needed in particular
to make cachegrind's code cache management work properly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4943 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8d61eb1774d5d3f7a9215c7bf783f300b1fb8d55 08-Jul-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Comment wibble.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4132 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8cf88b7b5d8325e098b455f502c9a9239c6ee011 08-Jul-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Create and use bigendian versions of MC_(helperc_{LOAD,STORE}V{2,4,8}).
This involved some serious nastyness from the Department of Cpp Abuse.

Memcheck still bombs on ppc32 for unknown reasons.

There are still endianness issues within these functions, I think.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4129 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
2e595858903b80f29f271dc94e32a9e052bb4c8a 01-Jul-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Track Vex API change (r1239, introduction of endianness-indications in
IR loads and stores.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4072 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
af839f52d74df156d655201a889954133ab01be7 23-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Removed the VGA_/VGO_/VGP_ prefixes for arch/OS/platform-specific
things. These made sense when the arch/OS/platform-specific code was in
one module, but as that code got mixed in with generic code the boundary
between generic and non-generic blurred, and the distinction made less
sense. So let's get rid of them.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4002 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
44acd3e8526899deb041d11df690f69dc071fe2c 13-May-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Removed mc_asm.h, which is no longer needed since Memcheck has no
assembly files any more. Moved MC_() into mc_include.h.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3692 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
826ec49ac9fcbc4f9bb1134d3b8827e4ee0f7687 12-May-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Use the new IRStmt_AbiHints created by the amd64 front end. This
finally makes memcheck able to reliably track the definedness of the
stack on amd64.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3686 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
51d827bcd88ce045a383ea1ca81768757df2d1fa 09-May-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
9e63cb6ff077511b592bfb22d702470d9fce2af8 08-May-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Moved mc_errcontext.c into mc_main.c, since it was very small and there was
no benefit in having it separate. This allows some exports to be removed
from mc_include.h.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3641 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
11bcc4ec8e861aea0dc36b32f6fcc9300dddd577 24-Apr-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Handle 8-byte value-check failures using a special fast-case fn (like
0,1,4 sized) rather than the generic one. Remove size 2 since that
never seems to get used.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3545 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
6cf40ffd6d17589c81b6fe6a0da6f4b6b83c4f80 21-Apr-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix a bunch of 64-bit cases required amd64. Stop to ponder whether
there is a better way to handle the 'pessimising cast' family of
operations in such a way that Vex's back-end instruction selectors can
generate better code than they do now, with less verbosity and general
confusingness in the insn selectors.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3536 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
9fb73db1c3fe4296264cf35cc2f3cd671ab2e61a 27-Mar-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add VGA_ prefix to the arch-specific macros {MIN,MAX}_INSTR_SIZE and
REGPARMS.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3458 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
b8dca865c180a2cb5240f02c9d16d376484de15c 14-Mar-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Reinstated Memcheck. Did the full merge from CVS, except for the
user-specified block stuff, which confused me because I wasn't sure whether
to use the code already in SVN, or the code in CVS. Perhaps that code
doesn't need to be changed.

Unfortunately, Memcheck doesn't work entirely correctly -- I get some
spurious errors. Nonetheless I'm checking it in as a starting point.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3353 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
5361242f022b38fadb4cdf02428cea8b8d901a90 12-Mar-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
0a4145332a08813f482f6f4e0dc1af438e9929d9 22-Nov-2004 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Removed now-defunct read/write checks for FPU ops.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3074 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
f680246e37177a673d55cc64d22f247e48807f68 22-Nov-2004 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove now-defunct --cleanup option for Memcheck.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3072 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
95448075345dc73986042f6dc68eb464d02bc6a8 22-Nov-2004 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make Memcheck compilable.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3065 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8b76fe55a596a4296ba5028e2510015fef38b02f 08-Nov-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Improved Memcheck's error checking messages in two significant ways:

- All memory-related errors are now clear whether they are caused by
unaddressable or uninitialised memory. (Previously, writes were
clearly addressability errors, but reads could be either.) Mostly
done by replacing the 'isWrite' field in MAC_Error with 'isUnaddr'.
Also, mc_check_readable() now indicates not just if an error occurred,
but what kind of error (ie. addressability or definedness).

- Put machinery into place in the core to inform tools when registers
are being read by the core -- ie. a 'pre_reg_read' event. Most
notably, this facilitates syscall scalar arg definedness checking for
Memcheck. Currently this is only working for read(), write(), exit()
and exit_group(), but it will be extended as the syscalls are
overhauled as part of the arch-abstraction work.

A consequence of this is that the ParamErr messages have changed. This:

Syscall param write(buf) contains uninitialised byte(s)

now means that the pointer 'buf' is partially undefined. If the memory
pointed to by 'buf' is partially undefined or unaddressable, it says one of:

Syscall param write(buf) points to uninitialised byte(s)
Syscall param write(buf) points to unaddressable byte(s)

The docs have been updated accordingly.

I also added a couple of regression tests.

These two change sare notable for being the first improvements to
Memcheck's checking/errors in a long time.

I also folded mc_clientreqs.c into mc_main.c, which saves exporting a
whole bunch of things that are not used anywhere else.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2949 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
451eae91506b6bb5171bd862e8ef5fbbcd703bb8 02-Nov-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> 64-bit cleanness:
- Use SizeT instead of UInt for new_mem_stack and all the related functions.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2907 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
5a2664c7e26ac5053ebde6954a6e789144df570e 02-Sep-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Arch-abstraction:
- renamed "vg_constants.h" as "core_asm.h".
- renamed "vg_constants_skin.h" as "tool_asm.h".
- renamed "mc_constants.h" as "mc_asm.h".


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2650 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
eec46308860444fc70041a71169a5d7830271fcf 23-Aug-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Small step in factoring out arch-specific code: replace
__attribute((regparm(n))) with REGPARM(n) everywhere. REGPARM() is defined in
vg_skin.h, but will eventually be defined separately for each arch.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2601 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
31212bcbafd6c3b8ff7cd6db8c3d649a6e36c9e1 29-Feb-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Patch from Bartosz Taudul: latest GCC requires regparm(n) attributes on both
function declarations and definitions.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2280 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
bb1c99123c95fb9a4a2617d6e1d09559ac68db80 04-Jan-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Updated copyright dates for 2004. Also added a couple of missing headers and
footers to some new files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2177 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
137bc55f216bc7d9528f159a78cdf9025e0b02ff 14-Nov-2003 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Started to rescind the name "skin", replacing it with "tool". Did this in all
the places that normal users will see:

- command line: --tool=foo (although --skin=foo still works)
- docs: removed all traces (included renaming coregrind_skins.html to
coregrind_tools.html)
- in the usage messages
- in error messages

Also did in in some places that I judged were unlikely to cause clashes with
existing workspaces:

- in the header comments of many files (eg. "This file is part of Memcheck, a
Valgrind tool for...")
- in the regtests script
- in the .supp files
- in AUTHORS
- in README_MISSING_SYSCALL_OR_IOCTL

Also update the AUTHORS file to mention Jeremy.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2027 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
72718649e68c7eaf3d0b8cd3deebde198b2ea84d 24-Jul-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> A big commit size-wise, but small concept-wise: removed the ThreadState type
from skin's view, replacing all instances with ThreadId. Much cleaner. Had to
change the way VG_(get_ExeContext)() worked a little. Changed the core/skin
major interface because this breaks the old version. Also fixed a few minor
related things here and there.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1782 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
66fe05a4cf9c53f09ffc6edc31497be506049831 22-Jul-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added overlap checking to Addrcheck, mostly just moving things around. In
particular, renamed mc_replace_strmem.c as mac_replace_strmem.c; the 'mac'
prefix indicates it's shared between Memcheck and Addrcheck.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1774 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
af48a6052275dd1bf9e231813ee24e1f4111d1a7 06-Jul-2003 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add patch from Nick to get proper backtraces in
MC_(get_or_set_vbits_for_client).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1719 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
ee070841e197a311bb7a5bf966ff8babec134e6c 05-Jul-2003 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add memcheck client requests VALGRIND_GET_VBITS / VALGRIND_SET_VBITS
for fetching/setting metadata so that it can be sent between
unconnected address spaces (or whatever).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1718 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
34419c1237100ca66b224e235bc6ded59c7ec2fe 02-May-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Made memcpy()-et-al-overlap errors fully fledged errors, suppressible,
recordable, etc. Thanks to Tom Hughes <thh@cyberscience.com> for the patch.

Also fixed a minor bug in the reporting -- the src/dst pointers given for
strncat(), strcpy(), strcat().

And I updated the relevent regression test.

And I even added relevant documentation.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1582 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
0e1b514ab8e837f75a207a037ea53a6a721e9d28 15-Apr-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Updated copyright notices for 2003. Only 4 months late.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1526 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
43c799ed4de307bf00b2467b9b63e583894a030b 08-Apr-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> This commit moves some skin-specific stuff out of core, and generally
neatens other things up.

Also, it adds the --gen-suppressions option for automatically generating
suppressions for each error.

Note that it changes the core/skin interface:
SK_(dup_extra_and_update)() is replaced by SK_(update_extra)(), and
SK_(get_error_name)() and SK_(print_extra_suppression_info)() are added.


-----------------------------------------------------------------------------
details
-----------------------------------------------------------------------------
Removed ac_common.c -- it just #included another .c file; moved the
#include into ac_main.c.

Introduced "mac_" prefixes for files shared between Addrcheck and Memcheck,
to make it clearer which code is shared. Also using a "MAC_" prefix for
functions and variables and types that are shared. Addrcheck doesn't see
the "MC_" prefix at all.

Factored out almost-identical mc_describe_addr() and describe_addr()
(AddrCheck's version) into MAC_(describe_addr)().

Got rid of the "pp_ExeContext" closure passed to SK_(pp_SkinError)(), it
wasn't really necessary.

Introduced MAC_(pp_shared_SkinError)() for the error printing code shared by
Addrcheck and Memcheck. Fixed some bogus stuff in Addrcheck error messages
about "uninitialised bytes" (there because of an imperfect conversion from
Memcheck).

Moved the leak checker out of core (vg_memory.c), into mac_leakcheck.c.
- This meant the hacky way of recording Leak errors, which was different to
normal errors, could be changed to something better: introduced a
function VG_(unique_error)(), which unlike VG_(maybe_record_error)() just
prints the error (unless suppressed) but doesn't record it. Used for
leaks; a much better solution all round as it allowed me to remove a lot
of almost-identical code from leak handling (is_suppressible_leak(),
leaksupp_matches_callers()).

- As part of this, changed the horrible SK_(dup_extra_and_update) into the
slightly less horrible SK_(update_extra), which returns the size of the
`extra' part for the core to duplicate.

- Also renamed it from VG_(generic_detect_memory_leaks)() to
MAC_(do_detect_memory_leaks). In making the code nicer w.r.t suppressions
and error reporting, I tied it a bit more closely to Memcheck/Addrcheck,
and got rid of some of the args. It's not really "generic" any more, but
then it never really was. (This could be undone, but there doesn't seem
to be much point.)

STREQ and STREQN were #defined in several places, and in two different ways.
Made global macros VG_STREQ, VG_CLO_STREQ and VG_CLO_STREQN in vg_skin.h.

Added the --gen-suppressions code. This required adding the functions
SK_(get_error_name)() and SK_(print_extra_suppression_info)() for skins that
use the error handling need.

Added documentation for --gen-suppressions, and fixed some other minor document
problems.

Various other minor related changes too.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1517 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
9b007f64f7d277450793bc54e4ce29a163eb793b 07-Apr-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> -----------------------------------------------------------------------------
overview
-----------------------------------------------------------------------------
This commit introduces an optimisation that speeds up Memcheck by roughly
-3 -- 28%, and Addrcheck by 1 -- 36%, at least for the SPEC2000 benchmarks on
my 1400MHz Athlon.

Basic idea: that handling of A/V bit updates on %esp-adjustments was quite
sub-optimal -- for each "PUT ESP", a function was called that computed the
delta from the old and new ESPs, and then called a looping function to deal
with it.

Improvements:

1. most of the time, the delta can be seen from the code. So there's no need
to compute it.

2. when the delta is known, we can directly call a skin function to handle it.

3. we can specialise for certain common cases (eg. +/- 4, 8, 12, 16, 32),
including having unrolled loops for these.

This slightly bloats UCode because of setting up args for the call, and for
updating ESP in code (previously was done in the called C function). Eg. for
`date' the code expansion ratio goes from 14.2 --> 14.6. But it's much faster.

Note that skins don't have to use the specialised cases, they can just
define the ordinary case if they want; the specialised cases are only used
if present.

-----------------------------------------------------------------------------
details
-----------------------------------------------------------------------------
Removed addrcheck/ac_common.c, put its (minimal) contents in ac_main.c.

Updated the major interface version, because this change isn't binary
compatible with the old core/skin interface.

Removed the hooks {new,die}_mem_stack_aligned, replaced with the better
{new,die}_mem_stack_{4,8,12,16,32}. Still have the generic {die,new}_mem_stack
hooks. These are called directly from UCode, thanks to a new pass that occurs
between instrumentation and register allocation (but only if the skin uses
these stack-adjustment hooks). VG_(unknown_esp_update)() is called from UCode
for the generic case; it determines if it's a stack switch, and calls the
generic {new,die}_stack_mem hooks accordingly. This meant
synth_handle_esp_assignment() could be removed.

The new %esp-delta computation phase is in vg_translate.c.

In Memcheck and Addrcheck, added functions for updating the A and V bits of a
single aligned word and a single aligned doubleword. These are called from the
specialised functions new_mem_stack_4, etc. Could remove the one for the old
hooks new_mem_stack_aligned and die_mem_stack_aligned.

In mc_common.h, added a big macro containing the definitions of new_mem_stack_4
et al. It's ``instantiated'' separately by Memcheck and Addrcheck. The macro
is a bit klugey, but I did it that way because speed is vital for these
functions, so eg. a function pointer would have slowed things down.

Updated the built-in profiling events appropriately for the changes (removed
one old event, added a new one; finding their names is left as an exercise for
the reader).

Fixed memory event profiling in {Addr,Mem}check, which had rotted.

A few other minor things.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1510 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
5c004e4befbb4bb13d9bdb5084748585ea2b9ec3 18-Nov-2002 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Overview:
- Factored out a lot of commonality between AddrCheck and MemCheck. Basic
idea is that common code goes into a single file in MemCheck, and AddrCheck
peeks in and "borrows" it.

More or less, only identical code or identical-with-respect-to-subtypes
code was factored out.

Identical-with-respect-to-subtypes means that some enum types (SuppKind,
ErrorKind, etc) were merged because they were identical except that
MemCheck had some extra constants. So some of the code borrowed by
AddrCheck contains cases it never needs. But that's not so bad, avoiding
the duplication is IMHO more important.

Removed:
- ac_include.h, it wasn't necessary

- All the old debugging stuff from ac_main.c (printing shadow regs, not
applicable for AddrCheck).

- MANUAL_DEPS from memcheck/Makefile.am because it wasn't doing anything

- Some unnecessary crud from addrcheck/Makefile.am

Added:
- memcheck/mc_common.{c,h}
- memcheck/mc_constants.h
- addrcheck/ac_common.c, which simply #includes memcheck/mc_common.c. This
hack was required because there is no way (that I could work out) to tell
Automake that it should build ../memcheck/mc_common.o before building
AddrCheck.

Changed:
- a lot of prefixes from SK_ to MC_; only core/skin interface functions are
prefixed with SK_ now. This makes it clear which functions are from the
core/skin interface, and for AddrCheck it's clear which functions are
shared with/borrowed from MemCheck. Changed some related prefixes for
consistency.

- Also factored out some duplication within AddrCheck -- some accessibility
checking was needlessly split up into separate read and write checks that
did the same thing.

Unchanged:
- I considered moving the leak detector out of core into mc_common.c, but
didn't, because it constantly accesses ShadowChunk fields and converting to
get/set methods would have been a total pain.

- Left old debugging stuff in for MemCheck, although I seriously doubt it
would still work.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1325 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
9b6d34ead5553d09299188591e880c0c0b22846a 15-Oct-2002 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Wibbles, thanks to Arnaud Desitter.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1232 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
8ec2cfcb9c1267fd7b20529f1b95973a9712b872 13-Oct-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
c953984b8ee34ac55830b9871138b409d9d9476c 02-Oct-2002 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
c4d68a51356d0d55d62cee8aae23141c6979e4d0 30-Sep-2002 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> wibble


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1140 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
cac76cb18577b9c51d331f56e8ea241f6effaf31 23-Sep-2002 njn25 <njn25@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h
e49d8e7dfd3a9c96feb9935b5920973dfc0b170a 23-Sep-2002 njn25 <njn25@a5019735-40e9-0310-863c-91ae7b9d1cf9> Files updated, added and removed in order to turn the ERASER branch into HEAD


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1086 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_include.h