History log of /external/valgrind/include/valgrind.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3260a71774b2d4475b85b10fad0255e9cb638bdb 23-Sep-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge, from branches/VALGRIND_3_11_BRANCH, NEWS and docs/xml/vg-entities.xml.

Bump version to 3.12.0.SVN.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15679 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
470e245039eeb703d2f887fa3ff4a1fef116d23e 06-Sep-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Bug 342008 - valgrind.h needs type cast for _zzq_default to compile with clang/llvm in 64-bit mode.
(arm64, that is)
Patch from chh@google.com.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15633 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
b3a1e4bffbdbbf38304f216af405009868f43628 21-Aug-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates, to include 2015. No functional change.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15577 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
f1c8e6c2748201f194d55893e89b3a1453c9b5bd 12-Aug-2015 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> valgrind.h: Suppress client request code generation on x32

Ensure that no code is generated for client requests on x32.

From: Matthias Schwarzott <zzam@gentoo.org>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15526 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
8eb8bab992e3998c33770b0cdb16059a8b918a06 21-Jul-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Bug 345248 - add support for Solaris OS in valgrind

Authors of this port:
Petr Pavlu setup@dagobah.cz
Ivo Raisr ivosh@ivosh.net
Theo Schlossnagle theo@omniti.com



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15426 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
112711afefcfcd43680c7c4aa8d38ef180e8811e 10-Apr-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a port to Linux/TileGx. Zhi-Gang Liu (zliu@tilera.com)
Valgrind aspects, to match vex r3124.

See bug 339778 - Linux/TileGx platform support to Valgrind



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15080 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
87d812e99f0e33604b268410a677793ef76229d9 11-Feb-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> arm32-linux: for the magic-call CALL_FN_* macros, add r12 to the asm
trash list. Not doing so was causing r12 to get corrupted by the
called function, which lead to some very strange failures in Helgrind
on arm32. Fixes #344033.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14929 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
3540ee89957c352912f3ffb90484abb17cc60675 19-Nov-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Use unsigned long int instead of unsigned long long int on LP64
platforms. This avoids warnings when compiling with -pedantic.
Fixes BZ #211926.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14732 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
38a74d2cc4670e3eb559adff51a376cd6ec98005 30-Aug-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> The semantic of the stack bounds is not consistent or is not described.
At various places, there were either some assumption that the 'end'
boundary (highest address) was either not included, included,
or was the highest addressable word, or the highest addressable byte.
This e.g. was very visible when doing:
./vg-in-place -d -d ./helgrind/tests/tc01_simple_race|&grep regi
giving
--24040:2:stacks register 0xBEDB4000-0xBEDB4FFF as stack 0
--24040:2:stacks register 0x402C000-0x4A2C000 as stack 1
showing that the main stack end was (on x86) not the highest word
but the highest byte, while for the thread 1, the registered end
was a byte not part of the stack.

The attached patch ensures that stack bounds semantic are documented and
consistent. Also, some of the stack handling code is factorised.

The convention that the patch ensures and documents is:
start is the lowest addressable byte, end is the highest addressable byte.
(the words 'min' and 'max' have been kept when already used, as this wording is
consistent with the new semantic of start/end).

In various debug log, used brackets [ and ] to make clear that
both bounds are included.

The code to guess and register the client stack was duplicated
in all the platform specific syswrap-<plat>-<os>.c files.
Code has been factorised in syswrap-generic.c

The patch has been regression tested on
x86, amd64, ppc32/64, s390x.
It has been compiled and one test run on arm64.
Not compiled/not tested on darwin, android, mips32/64, arm


More in details, the patch does the following:

coregrind/pub_core_aspacemgr.h
include/valgrind.h
include/pub_tool_machine.h
coregrind/pub_core_scheduler.h
coregrind/pub_core_stacks.h
- document start/end semantic in various functions
also in pub_tool_machine.h:
- replaces unclear 'bottommost address' by 'lowest address'
(unclear as stack bottom is or at least can be interpreted as
the 'functional' bottom of the stack, which is the highest
address for 'stack growing downwards').
coregrind/pub_core_initimg.h
replace unclear clstack_top by clstack_end
coregrind/m_main.c
updated to clstack_end

coregrind/pub_core_threadstate.h
renamed client_stack_highest_word to client_stack_highest_byte
coregrind/m_scheduler/scheduler.c
computes client_stack_highest_byte as the highest addressable byte
Update comments in call to VG_(show_sched_status)
coregrind/m_machine.c
coregrind/m_stacktrace.c
updated to client_stack_highest_byte, and switched
stack_lowest/highest_word to stack_lowest/highest_byte accordingly

coregrind/m_stacks.c
clarify semantic of start/end,
added a comment to indicate why we invert start/end in register call
(note that the code find_stack_by_addr was already assuming that
end was included as the checks were doing e.g.
sp >= i->start && sp <= i->end

coregrind/pub_core_clientstate.h
coregrind/m_clientstate.c
renames Addr VG_(clstk_base) to Addr VG_(clstk_start_base)
(start to indicate it is the lowest address, base suffix kept
to indicate it is the initial lowest address).

coregrind/m_initimg/initimg-darwin.c
updated to VG_(clstk_start_base)
replace unclear iicii.clstack_top by iicii.clstack_end
updated clstack_max_size computation according to both bounds included.

coregrind/m_initimg/initimg-linux.c
updated to VG_(clstk_start_base)
updated VG_(clstk_end) computation according to both bounds included.
replace unclear iicii.clstack_top by iicii.clstack_end

coregrind/pub_core_aspacemgr.h
extern Addr VG_(am_startup) : clarify semantic of the returned value
coregrind/m_aspacemgr/aspacemgr-linux.c
removed a copy of a comment that was already in pub_core_aspacemgr.h
(avoid double maintenance)
renamed unclear suggested_clstack_top to suggested_clstack_end
(note that here, it looks like suggested_clstack_top was already
the last addressable byte)

* factorisation of the stack guessing and registration causes
mechanical changes in the following files:
coregrind/m_syswrap/syswrap-ppc64-linux.c
coregrind/m_syswrap/syswrap-x86-darwin.c
coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-arm-linux.c
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-mips64-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-amd64-darwin.c
coregrind/m_syswrap/syswrap-mips32-linux.c
coregrind/m_syswrap/priv_syswrap-generic.h
coregrind/m_syswrap/syswrap-x86-linux.c
coregrind/m_syswrap/syswrap-s390x-linux.c
coregrind/m_syswrap/syswrap-darwin.c
coregrind/m_syswrap/syswrap-arm64-linux.c
Some files to look at more in details:
syswrap-darwin.c : the handling of sysctl(kern.usrstack) looked
buggy to me, and has probably be made correct by the fact that
VG_(clstk_end) is now the last addressable byte. However,unsure
about this, as I could not find any documentation about
sysctl(kern.usrstack). I only find several occurences on the web,
showing that the result of this is page aligned, which I guess
means it must be 1+ the last addressable byte.
syswrap-x86-darwin.c and syswrap-amd64-darwin.c
I suspect the code that was computing client_stack_highest_word
was wrong, and the patch makes it correct.
syswrap-mips64-linux.c
not sure what to do for this code. This is the only code
that was guessing the stack differently from others.
Kept (almost) untouched. To be discussed with mips maintainers.

coregrind/pub_core_libcassert.h
coregrind/m_libcassert.c
* void VG_(show_sched_status):
renamed Bool valgrind_stack_usage to Bool stack_usage
if stack_usage, shows both the valgrind stack usage and
the client stack boundaries
coregrind/m_scheduler/scheduler.c
coregrind/m_gdbserver/server.c
coregrind/m_gdbserver/remote-utils.c
Updated comments in callers to VG_(show_sched_status)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14392 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
582d58245637ab05272d89fb94b12fd0f18fa0f8 08-Aug-2014 carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> This commit is for Bugzilla 334834. The Bugzilla contains patch 2 of 3
to add PPC64 LE support. The other two patches can be found in Bugzillas
334384 and 334836.

POWER PC, add the functional Little Endian support, patch 2

The IBM POWER processor now supports both Big Endian and Little Endian.
The ABI for Little Endian also changes. Specifically, the function
descriptor is not used, the stack size changed, accessing the TOC
changed. Functions now have a local and a global entry point. Register
r2 contains the TOC for local calls and register r12 contains the TOC
for global calls. This patch makes the functional changes to the
Valgrind tool. The patch makes the changes needed for the
none/tests/ppc32 and none/tests/ppc64 Makefile.am. A number of the
ppc specific tests have Endian dependencies that are not fixed in
this patch. They are fixed in the next patch.

Per Julian's comments renamed coregrind/m_dispatch/dispatch-ppc64-linux.S
to coregrind/m_dispatch/dispatch-ppc64be-linux.S Created new file for LE
coregrind/m_dispatch/dispatch-ppc64le-linux.S. The same was done for
coregrind/m_syswrap/syscall-ppc-linux.S.

Signed-off-by: Carl Love <carll@us.ibm.com>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14239 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
cae0cc22b83ffb260ee8379e92099c5a701944cb 08-Aug-2014 carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> This commit is for Bugzilla 334384. The Bugzilla contains patch 1 of 3
to add PPC64 LE support. The other two patches can be found in Bugzillas
334834 and 334836. The commit does not have a VEX commit associated with it.

POWER PC, add initial Little Endian support

The IBM POWER processor now supports both Big Endian and Little Endian.
This patch renames the #defines with the name ppc64 to ppc64be for the BE
specific code. This patch adds the Little Endian #define ppc64le to the

Additionally, a few functions are renamed to remove BE from the name if the
function is used by BE and LE. Functions that are BE specific have BE put
in the name.

The goals of this patch is to make sure #defines, function names and
variables consistently use PPC64/ppc64 if it refers to BE and LE,
PPC64BE/ppc64be if it is specific to BE, PPC64LE/ppc64le if it is LE
specific. The patch does not break the code for PPC64 Big Endian.

The test files memcheck/tests/atomic_incs.c, tests/power_insn_available.c
and tests/power_insn_available.c are also updated to the new #define
definition for PPC64 BE.

Signed-off-by: Carl Love <carll@us.ibm.com>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14238 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
c913c8e1a75c78cd653fec8076c07ee4bfb56824 15-May-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make the PLAT_ identification work properly for mingw-win64. Problem was
that mingw64 also defines __MINGW32__, which led to the 32-bit definitions
being used in the 64-bit case. n-i-bz. (Bernhard.Loos@ruecker.de)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13971 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
bd830b45bf40e077fb5c0ea6333a416971c253cd 12-May-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update __VALGRIND_MINOR__ before it gets forgotten again.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13952 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
91e1460ca9b838a81fba6050f8a0eccf217ed010 16-Mar-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> For arm64, implement macros CALL_FN_W_5W to CALL_FN_W_12W.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13875 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
bb9b1b9ac93f01cc216b548a6c8aeac59d4fd046 09-Mar-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Supporting macros for function intercept and wrapping on arm64:
* implement VALGRIND_ALIGN_STACK, VALGRIND_RESTORE_STACK
* preserve r30(LR) across the hidden call, so as to avoid segfaulting later



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13859 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
0bc560ed9d401b12245b4b6a5364e13bc1383a54 22-Feb-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Bump __VALGRIND_MINOR__ to catch up with the release.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13831 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
4decb2697c3e367d9599b0ee8a11db8148bb7147 10-Feb-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix the ppc32 special-instruction magic sequence so it really does
preserve the value of r0, as claimed. Fixes #278808 (Valgrind side).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13797 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
f0c1250e324f6684757c6a15545366447ef1d64f 12-Jan-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for ARMv8 AArch64 (the 64 bit ARM instruction set).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13770 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
aaaf21d21f5803b6b1a0fc558bb8db0fcb83a7a0 25-Aug-2013 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> valgrind.h: Add MinGW64 support

From: Makoto Kato <m_kato@ga2.so-net.ne.jp>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13513 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
4df0bfc0614379192c780c944415dc420d9cfe8e 28-Feb-2013 petarj <petarj@a5019735-40e9-0310-863c-91ae7b9d1cf9> mips: adding MIPS64LE support to Valgrind

Necessary changes to Valgrind to support MIPS64LE on Linux.
Minor cleanup/style changes embedded in the patch as well.
The change corresponds to r2687 in VEX.
Patch written by Dejan Jevtic and Petar Jovanovic.

More information about this issue:
https://bugs.kde.org/show_bug.cgi?id=313267


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13292 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
46207652a0c99a2c8b0f05eafce3ca3ec533c121 20-Jan-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Implement --merge-recursive-frames + provide VALGRIND_MONITOR_COMMAND client req.

In a big applications, some recursive algorithms have created
hundreds of thousands of stacktraces, taking a lot of memory.

Option --merge-recursive-frames=<number> tells Valgrind to
detect and merge (collapse) recursive calls when recording stack traces.
The value is changeable using the monitor command
'v.set merge-recursive-frames'.

Also, this provides a new client request: VALGRIND_MONITOR_COMMAND
allowing to execute a gdbsrv monitor command from the client
program.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13246 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
c379fec53a1e7a2ba8698f339ad67e370c9f0886 03-Sep-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Use "orr r9,r9,r9" as the magic insn for IR injection on ARM and
Thumb, since r13 is disallowed for many instructions in the Thumb
encoding.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12956 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
4d261bbb67135fef7b1f947b025a0ff6b512cc57 29-Aug-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add VALGRIND_VEX_INJECT_IR for ppc32. Should have been included
in r12906.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12912 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
bb913cd4cc1e56d7d7798a8b754361a05d01f916 28-Aug-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a tester for V-bit propagation through IROps.
The tester is located in memcheck/tests/vbit-test.
It needs the following support on the valgrind / VEX side:
(1) a new client request VG_USERREQ__VEX_INIT_FOR_IRI
(2) a new "special instruction" on all architectures inserted via
VALGRIND_VEX_INJECT_IR
(3) VEX changes to detect the special insn and insert IR (ir_inject.c)

The README file in vbit-test has some more information.
See also VEX r2490. Fixes bugzilla #300102.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12906 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
567e5bb6edf4c1f5d8fe3e41aa0bbe63682bfeac 04-Aug-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Try to fix up ARM stack alignment stuff following r12811. This
fixes two problems: first, r11 (aka fp) can't be used in assembly
for whatever reason. Secondly, the "bic sp,sp,#7" is not allowed
in Thumb mode, so work around that too.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12832 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
9af940f5f1832ab887b89598c7f0df519d47a092 03-Aug-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Comment only change.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12818 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
4118e0f0df0468b3eccf2515d13c3d9c478d6f16 02-Aug-2012 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Ensure CALL_FN_xx macros align the stack properly

The CALL_FN_xx macros in valgrind.h perform function calls by
signalling to valgrind using the client request system. Because
they are making function calls which are invisible to the compiler
they need to make sure that any stack alignment constraints
imposed by the ABI are enforced when making the call.

This commit enforces 16 byte alignment for x86, amd64, ppc32 and
ppc64 platforms, and 8 byte alignment for arm platforms.

It does not touch s390x where the ABI requires 8 byte alignment to
be maintained at all times, not just when making a function call.

It also does not touch mips32 as I'm not currently aware what if
any alignment constraints exist there.

Fixes BZ#304054 and observed alignment faults on amd64 when running
the regtests using a valgrind compiled with gcc 4.7 releases.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12811 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
5db15403e889d4db339b342bc2a824ef0bfaa654 07-Jun-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

Valgrind: changes to existing files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12616 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
573f8bc106cf3646bdb62748820287c9c44bd432 05-Jun-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add macros I_REPLACE_SONAME_FNNAME_Z{U,Z} for general end-user use.
The I_WRAP_SONAME_FNNAME_Z{U,Z} equivalents have been present for
years. Seems inconsistent for the REPLACE versions to be missing.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12613 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
7d79e0b97af18baed7ab6b12a363538974d3775a 21-May-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix VALGRIND_MINOR/VALGRIND_MAJOR symbols. This got forgotten about
in 3.7.0 (oops).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12573 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
42f83fe6c64da13801d4eb54fa2aa6530679848a 31-Jan-2012 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> <valgrind/valgrind.h>: Fix for Intel C/C++ compiler in MSVC compatibility mode.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12361 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
4b3a74204894e943c43cb8e8aae39d813040702c 24-Oct-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix #284384 (clang 3.1 -Wunused-value warnings in valgrind.h,
memcheck.h) by changing a bunch of VALGRIND_DO_CLIENT_REQUEST_EXPR
into VALGRIND_DO_CLIENT_REQUEST_STMT for cases where the return value
of the former would be unused. (Bart Van Assche, bart.vanassche@gmail.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12226 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
17dfe1addc98de357b9e24ddbe4ad7df4454873a 22-Oct-2011 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make VALGRIND_DO_CLIENT_REQUEST more user friendly by wrapping
its replacement in do .. while (0).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12199 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
06e9bf06cf953602adaf5e2a0a3f5522e4dc7f50 07-Oct-2011 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Avoid that using any of the VALGRIND_DISABLE_ERROR_REPORTING,
VALGRIND_ENABLE_ERROR_REPORTING, VALGRIND_DO_ADDED_LEAK_CHECK,
VALGRIND_DO_CHANGED_LEAK_CHECK macros causes gcc 4.6 to print
a warning message about assigning a value to an unused variable.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12110 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
8258a3a849f8bf47146ff1740d2dac429bb453a5 05-Oct-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> ppc64-linux only: fix incorrect line number reports in client requests
that create stack traces. Fixes #283243.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12101 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
96044842731e581702c9ed4104d2949fcde20fd8 18-Aug-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Extend the behavioural-equivalence-class mechanism for redirection
functions to include the ability to give a priority to each function,
as well as a tag indicating its behavioural class. Add logic in
m_redir.c to resolve conflicting redirections with the same eclass but
different priorities by preferring the redirection with the higher
priority. Use all of the above in mc_replace_strmem.c, to cause a
conflict between redirections for "memcpy" and "memcpy@GLIBC_2.2.5" to
be resolved in favour of the latter (the non-overlap-checking
version).

This is all related to the massive swamp that is #275284.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11991 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
85cf90056b7a8d98d88335b47c599a35b35ff7ca 16-Aug-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add more infrastructure to be used for fixing #275284 (Valgrind
memcpy/memmove redirection stopped working in glibc 2.14/x86_64), but
don't fix the problem yet. Should be no end-user visible change.

* in m_redir.c, when processing redirection specifications, consider
all the names associated with an address, not just the primary name.

* add plumbing to support the notion of "behavioural equivalence class
tags" of redirect/wrap functions. These can be used by m_redir to
resolve some situations in which the available set of redirect
specifications causes some address to get redirected to two
different functions. (Framework is in place, but such resolution is
not implemented yet.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11984 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
0d03bd4212e1e17aa5200edf18f2e7516d62e470 25-Jul-2011 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> valgrind.h: Remove a superfluous cast. See also #278454.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11913 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
dc873c08cc51930ecd35a976c1d03285f9a53b94 24-Jul-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a new client request and pair of macros,
VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING, which allow a thread to
temporarily disable reporting of errors it makes. This is useful for
making Memcheck behave sanely in the presence of some MPI
implementations. Also mark up libmpiwrap.c accordingly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11910 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
6e9de463ef677f093e9f24f126e1b11c28cf59fd 28-Jun-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Delete the AIX5 port. The last release this worked for is 3.4.1,
and then only on AIX 5.2 and 5.3.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
c112c8ea1262761630f2f17ada4d53697b1242fa 24-Jun-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix #undefs that are inconsistent with those further up the file,
as spotted by Michael Meeks.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11829 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
575ce8ef8fa86a502dabe152293320676922dcfe 15-May-2011 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Get rid of the remaining "set but not used" warnings reported by gcc 4.6 by
swapping the roles of the VALGRIND_DO_CLIENT_REQUEST() and
VALGRIND_DO_CLIENT_REQUEST_EXPR() macros. Also, many __attribute__((unused))
declarations on variables have been eliminated. Closes #269778.

Note: so far this patch has been tested on x86/Linux, amd64/Linux and
ppc64/Linux but not yet on any other supported CPU/OS combination.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11755 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
66304e23eee4249f35561a70b41cc390d8d6e54f 28-Mar-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove a bunch more warnings generated by gcc-4.6 about dead
assignments ("[-Wunused-but-set-variable]"), in the test suite.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11675 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
b5b87408c0c99f9f6938d8cd921e2a5f420577c4 07-Mar-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind
side components. (Florian Krohm <britzel@acm.org> and Christian
Borntraeger <borntraeger@de.ibm.com>). Fixes #243404.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
8c7e25f496b1771f21712db0b1f35935bacfaff3 04-Mar-2011 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> <valgrind/valgrind.h>: Made VALGRIND_PRINTF() and VALGRIND_PRINTF_BACKTRACE() definitions (with NVALGRIND defined) C89-compliant.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11580 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
87a287b47f496063f5869dc5039a81baeb6a29ae 20-Oct-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Preserve the stack's 16-alignment in x86 and amd64 wrappers.
Fixes #254646.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11461 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
8d1dc150a77fe495682a928949c5d5b7443b045c 08-Oct-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> More unwind fixes for the amd64-linux CALL_FN_*_* macros, as per
bug 243270 comments 47 and 48:
* use __builtin_dwarf_cfa(), not __builtin_frame_address(0), to get the CFA
* use correct register specifier in VALGRIND_CFI_PROLOGUE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
dea799c04931744241477959f46993d87c21b243 08-Oct-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Only enable CFI annotations when __GCC_HAVE_DWARF2_CFI_ASM is defined. This should work for all platforms, all gcc versions and with and without -fno-dwarf2-cfi-asm / -fno-asynchronous-unwind-tables. Thanks to Jakub Jelinek for the hint.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11415 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
410afd5bd19ec32972ddc5c4c91b62d212f029b6 08-Oct-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> valgrind.h is again independent of config.h. Note: __builtin_frame_address()
is available since at least gcc 2.95.3.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11414 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
520a03a4c59703908bae4cc437814abf0a24cdcd 07-Oct-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix build failure I introduced in r11408, duh.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11410 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
602278444fa6b4135a44d19ae833ed42a9898e48 07-Oct-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Tidy up ifdeffery a bit. (non-functional change)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11408 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
0681bddb26292e346a67aed4d5eecb6627987792 07-Oct-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix build breakage on Darwin resulting from r11402 (see #243270),
by disabling creation of .cfi directives on Darwin, until such time
as someone can figure out how to do this.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11407 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
dfa55cf5263d1a105425fef13aff164e8cbb30f6 07-Oct-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> amd64-linux: add suitable CFI annotations so that unwinding through
the CALL_FN_*_* macros works more reliably. This is all very fiddly
and is described in a large comment in valgrind.h. Fixes #243270.
(Evgeniy Stepanov, eugeni.stepanov@gmail.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11402 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
2823aacb0fa513aef4100388e633c69764e60b77 05-Sep-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fixed an AMD64 bug reported by Evgeniy Stepanov: the order of
VALGRIND_CALL_NOREDIR_RAX and addq $128,%%rsp was wrong in CALL_FN_W_6W().
See also #243270.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11340 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
fa5115adb77868b1ee3efc8dce061b881e7833c5 02-Sep-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Refactoring: introduced new macro VALGRIND_DO_CLIENT_REQUEST_EXPR() and used that macro to reimplement RUNNING_ON_VALGRIND.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11317 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
0da2c772047f3f6795dbb43dde5f5c9b43be73bb 01-Sep-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Suppressed a few warnings reported by the Microsoft C Compiler.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11314 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
7f489813d200fb614a0856fca05e2f9ebf66dd48 27-Aug-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Ported to Win32. Tested that both RUNNING_ON_VALGRIND and VALGRIND_PRINTF()
work with MinGW and Microsoft Visual Studio. Should close #210935.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11295 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
5c65962f59fb226d327a4860dfab27a1b19ce2e3 20-Aug-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a new client request, VALGRIND_MAP_IP_TO_SRCLOC, so that clients
can query their own debug info.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11269 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
0fe1d4c134ba889ff5e0a3b1b4dc8f36e610ca97 19-Apr-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Rename preprocessor macro __VALGRIND__ to __VALGRIND_MAJOR__ and add
comments.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11105 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
7104416748e90239b97560f5d727da107e3e08a9 03-Mar-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make the version number available in the valgrind.h headers, so
clients can do version-specific client requests. This is something we
should have done long ago. Still needs a way to regtest this, to
check that the embedded version matches what's stated in configure.in.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11061 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
c560fb380ac83ad1957d3fdf92751645a55cf167 28-Jan-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Followup fix to r11006. Don't pass va_list by value through client
requests, since there's no guarantee it is the same size as a machine
word.

This renames the private client request VG_USERREQ__INTERNAL_PRINTF to
VG_USERREQ__INTERNAL_PRINTF_VALIST_BY_REF and changes the
argument-passing accordingly.

The public client requests VG_USERREQ__PRINTF and
VG_USERREQ__PRINTF_BACKTRACE are now deprecated, and handled only in
the case where sizeof(UWord) == sizeof(va_list). In all other cases V
will now print a detailed error message and abort. This breaks binary
compatibility of apps compiled using VALGRIND_PRINTF and
VALGRIND_PRINTF_BACKTRACE, but that's not easy to avoid.

VG_USERREQ__PRINTF and VG_USERREQ__PRINTF_BACKTRACE are now replaced
by VG_USERREQ__PRINTF_VALIST_BY_REF and
VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF. The end-user macros
VALGRIND_PRINTF and VALGRIND_PRINTF_BACKTRACE have been adjusted to
use these new requests instead.

Overall result is that source level compatibility of code using
VALGRIND_PRINTF{,_BACKTRACE} is retained, but binary level
compatibility may be broken, necessitating a rebuild of code using
these macros.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11032 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
05b07158841423adc250f04e034bf11e6f892b23 04-Jan-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Don't assume that va_list can be casted to an unsigned word. Fixes
the build on arm-linux with gcc-4.4 or later. Patch from Dmitry
Zhurikhin.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11006 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
7af3230a91de23a737946c1b4649b2f826672bf6 02-Jan-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Tidy up determination of the PLAT_ macros a bit.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10989 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
59570ffbe31930ab4d678754daaeec0715117a3d 01-Jan-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge from branches/ARM, all parts of the ARM-Linux port except for
the changes to do with reading and using ELF and DWARF3 info.
This breaks all targets except amd64-linux and x86-linux.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10982 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
d55f0d924062c7b5b3453242a6f9611bd5ce7458 03-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> With the recent VG_(message) change,
VALGRIND_{PRINTF,PRINTF_BACKTRACE,INTERNAL_PRINTF} were no longer appending
newlines. This meant that --trace-malloc=yes spewed everything onto a
single line, among other things.

Rather than adding the newline back in, I chose to offically change their
behaviour to not add the newlines, as this is more flexible (and the reason
for the underlying VG_(message) change). I updated all the relevant places
I could find.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10694 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
32f8d8c0dcb3a7c3ff14aa9892ea2410eba3207c 15-Jul-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Ignore MALLOCLIKE_BLOCK/FREELIKE_BLOCK if addr==0. Fixes bug 137073. DRD
now has its own copy of custom_alloc.c which is a little different to
Memcheck's; making them both work with the same version was too difficult.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10455 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
3ac96953bf8c912a2aaa2870652dda8b9b75337b 10-Jul-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Attempt to improve the {MALLOC,FREE}LIKE_BLOCK documentation, based on
seeing them misapplied on a real-world example.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10420 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
f76d27a697a7b0bf3b84490baf60623fc96a23af 28-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge the DARWIN branch onto the trunk.

I tried using 'svn merge' to do the merge but it did a terrible job and
there were bazillions of conflicts. So instead I just took the diff between
the branch and trunk at r10155, applied the diff to the trunk, 'svn add'ed
the added files (no files needed to be 'svn remove'd) and committed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10156 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
2b5f0a90334a2271791c110548a842fadb5ffc65 19-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add some extra CALL_FN_V_* macros. Copied from the DARWIN branch.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9919 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
5f5ef2ae9e7c2ce5ebc36c1e2fc98e5f81650be3 11-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Factor out the name of the libpthread library. Also fix a minor stack trace
bogon.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9832 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
c8259b85b701d25d72aabe9dc0a8154517f96913 23-Apr-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for reading Windows PDB debug info (symbols and line
numbers) when Valgrind is running Wine. Modified version of a
patch by John Reiser (vgsvn+wine-load-pdb-debuginfo.patch) with
extensions to read a second format of line number tables.

Wine uses a new client request, VG_USERREQ__LOAD_PDB_DEBUGINFO,
to tell Valgrind when to read PDB info. Wine's implementation
of module loading is vastly different from that used by
ld-linux.so, and it is too difficult to recognize what is going
on just by observing the calls to mmap and mprotect.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9580 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
4486297d932a229cb383ca0671d57657677dd56e 23-Feb-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add missing __extension__ markings on a couple of clreqs.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9230 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
45fb4d304f59e4e4cca917d372278eeb75be2c33 05-Dec-2007 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Document flakiness of NON_SIMD_CALL* in comments and the manual.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7279 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
a07c2e157185dc577d6fa5fa154a44e4b3afe185 10-Nov-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge r6806 from branches/THRCHECK:

Fix longstanding error in the amd64-linux function-wrapping macros:
protect the caller's red zone across the hidden call. All rather
nasty as explained in big comment.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7120 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
1c5bcb1e17532ec1630056fb2e58ef8e15267f15 08-Dec-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Get rid of the use of explicit register variables in the ppc32-linux
magic macros.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6386 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
1319b49115bd0763628273b8a3fe08ac30712e31 20-Nov-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Clarify NON_SIMD_CALL instructions.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6362 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
0fc5cbd2f87dfe72cfc6333dd0f1c900364f66d6 18-Oct-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Move VG_BUGS_TO to pub_tool_basics.h so that Nulgrind need not import
pub_tool_libcassert.h.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6320 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
f5c1a7f5a80a9268b181bf6b73e865eb10688b85 17-Oct-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge r6125: Function-wrapping macros and associated stuff, for AIX.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6262 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
315dc8d060cada7e7eab1f38a513ed8659785609 28-Aug-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make this file a bit more 'gcc -ansi -pedantic' friendly (bug #132722).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6036 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.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/include/valgrind.h
479db774b080e3eef41b2ebb94d67f82d5c1788e 03-Jun-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a helpful comment.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5949 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
7eca0cc8e2bc1c260be1b596c54e4b55d1e2517a 12-Apr-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Recent GCCs (3.4+ at least) optimize static unused functions out, so
making VALGRIND_PRINTF and VALGRIND_PRINTF_BACKTRACE static and
attribute unused proved to be much better than always compiling it as
exported weak function. (Jakub Jelinek)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5845 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
7fd15d674f18757167305947732057099e175914 31-Mar-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make the BSD-style license notices slightly more accurate.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5803 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
cd63639e41d591b17cf8900e49e28048d39104c2 12-Mar-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add missing CALL_FN_* macros for ppc64-linux.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5758 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
ead61df62ca9c9194f62d4c4a8ba288782acbb0e 12-Mar-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add CALL_FN_* missing cases for ppc32-linux.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5754 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
a50f9dcb3a7609e10047a4c6dfa3eb7363088bd2 11-Mar-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Complete CALL_FN_W_* wrappers for amd64-linux.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5748 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
5ce4b150ce5d32c9af07a24717081ea34568388a 11-Mar-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add missing x86-linux CALL_FN_W_11W macro.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5745 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
45fa5b0cef1884f5025e64401a1443d3e129ed5e 09-Mar-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a couple of missing cases. Function wrapping is really ugly :-(


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5734 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
9e8b07ab0fb74fb15098c406a5dc71e273d50b1c 18-Feb-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a missing case.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5656 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
9af10a1c0d1b8897195ccfbc6dc46d8113d77153 01-Feb-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Change the number of client request args from 4 to 5 as that may
be useful in future.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5603 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
38de0994e3561760a8e1ff2efd51a0c9217a3d8d 20-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make fn wrapping work again on ppc32-linux.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5573 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
66226cc1e5e852de3584c76984dace8679730b42 20-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> x86 function wrapping fixes.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5571 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
c885844f7484a13bcf1c7f9b14cf5bc527462963 20-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make amd64 function wrapping work again following recent changes.
Includes expected outputs for wrap8 for the non ppc64-linux case.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5570 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
d68ac3e974d25f88492774f6baa491999afde9f9 20-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Changes to make function wrapping work better on ppc64-linux:

- when recording the non-redirected address in guest_NRADDR, also
snapshot the current R2 value, as that will be needed to run the
original safely

- As a consequence, the original-function information extracted by
VALGRIND_GET_ORIG_FN is different on ppc64-linux (2 words) from
all other platforms (1 word). So change the type of it from
void* to a new type OrigFn which can be defined differently for
each platform.

- Change the CALL_FN_* macros for ppc64-linux to save/restore
R2 values appropriately.

- ppc64-linux: detect overflow/underflow of the redirect stack
and bring Valgrind to a halt if this happens

- Update VG_CLREQ_SZB for ppc32/64 (was out of date).





git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5569 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
9734b20023ddaaf95a8d1f3849224ab27fe058bf 17-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> ppc64-linux function wrapping support (does not work properly)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5529 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
1a85f4f4e5e1ec2518137ffa9a6a9bf7d9c50df9 12-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix more ppc64-linux function wrapping and symbol-table bits and pieces.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5523 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
0ec07f32bbbb209d749b9974408e6f025ad40b31 12-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge in function wrapping support from the FNWRAP branch. That
branch hereby becomes inactive. This currently breaks everything
except x86; fixes for amd64/ppc32 to follow.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5520 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
2c48c7b0a453d32375a4df17e153011b797ef28c 29-Nov-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add framework for ppc64 support. Apologies in advance for the
inevitable breakage to other platforms.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
e6f883ee00318fd7fe3508a24badec5d0f225578 22-Jul-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove bogus legacy declarations, from the time when the AMD64
version of VALGRIND_MAGIC_SEQUENCE printed a message and exited.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4226 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
4a83015ecd0d962cf96f1479dc38ac41413df8df 03-Jul-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Removed the remnants of the attempt at an ARM port, because it had
bit-rotted badly and was clogging up the code.

I put the useful remnants in docs/porting-to-ARM in case anyone ever
wants to try porting to ARM again.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4092 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
3dd0a912e48a4884ee51ab3afe41856c165185ca 28-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Don't use non-ansi features in valgrind.h in case it's used in a file
compiled with -ansi. Added a regtest for it. Fixed bug #103182.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4044 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
85665ca6fa29dd64754dabe50eb98f25896e752a 20-Jun-2005 cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> Finally, valgrind on ppc32.
Plenty still to do, but simple programs like ls seem to run ok

Thanks, Paul, for having your ppc port of valgrind 2.4 to work from!




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3969 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
30d76c6abc3e7d338b1ca81256fa3ce93eccc09f 18-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Minor rearrangement, no functional change.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3935 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
0140af5b913b1a57b5c28ef776bbb2dda23e8b64 04-Jun-2005 rjwalsh <rjwalsh@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
26aba4d3ef6cebc34879e82d88bcbe3c3b3b9f9e 16-May-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> No need to generate valgrind.h from valgrind.h.in. We can just use the
compiler symbols rather than our own symbols for the architectures (we
already were, more or less). This simplifies the build, hurrah!

I also inverted the sense of the NVALGRIND ifdefs, to make them easier to
read, and fixed up some comments.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3739 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
e90c6836fd430124799e52896c99ea27b1c88541 18-Oct-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Arch-abstraction: fix up valgrind.h for future inclusion of other
architectures. Had to recast it as valgrind.h.in; now at configure time the
appropriate #define is set so that the appropriate snippet of assembly code is
chosen. It's done this way rather than with x86/ etc. directories like the
rest of Valgrind, because this header file must stand alone for inclusion by
other programs.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2794 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
85c8a508f834b771e9f16c58d6057004da5680f6 25-Aug-2004 thughes <thughes@a5019735-40e9-0310-863c-91ae7b9d1cf9> Removed comma at the end of an enumerator list - this is allowed
in C99 but not in C89 except as a GNU extension so it's probably
best not to rely on it.

Patch from Jeroen N. Witmond <jnw@xs4all.nl>.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2617 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
bc0bb8302c37c0c24aafbcfde0cc96d2c2805c94 19-Jun-2004 rjwalsh <rjwalsh@a5019735-40e9-0310-863c-91ae7b9d1cf9> Memory pool support.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2428 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
7cc9c239f785f2903b597cdb34418bed42d25331 21-Jan-2004 nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> Convert "skin" to "tool" in various places; almost entirely within comments,
nothing that will affect code.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2217 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
c9b365507e9bd5d500476e3e83f4d30f9c68a351 31-Dec-2003 mueller <mueller@a5019735-40e9-0310-863c-91ae7b9d1cf9> mark the braced expression as C(++) extension


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2152 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
a09a1b5d4e02b7451345dac00f2d321d1b4b2cce 08-Nov-2003 fitzhardinge <fitzhardinge@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix some bugs in syscall/signal handling:

If the proxyLWP for a thread got a signal just as we were sending the
syscall request to it, then we would end up running the syscall twice.
The fix is to not check the results pipe while sending the syscall request
- wait until we're in a better state for handling signals (the deadlock
the results-read was supposed to avoid cannot actually happen).

Related to that, if we're delivering a signal to a thread, and that thread
is currently waiting for a syscall to complete, make sure we collect the
syscall results before entering the signal handler (otherwise we may end
up bogusly trying to restart the syscall by moving EIP back, even though
it now points to the signal handler rather than the syscall instruction)

This change also adds an assertion to VG_(restart_syscall) to make sure
we were actually restarting a syscall and not just randomly changing EIP
(this found the problem above).

Also, make set/getitimer run in the proxyLWP context, so that they
modify/read the proxyLWP's timers rather than the schedluer LWP's timers.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2013 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
39de4b473801ab10a48e356cddc863212dd28cd1 31-Oct-2003 fitzhardinge <fitzhardinge@a5019735-40e9-0310-863c-91ae7b9d1cf9> Patch from Robert Walsh <rjwalsh@durables.org>. Adds some new client
requests to allow client code to print messages through Valgrind's
logging mechanism. The new requests are:
VALGRIND_PRINTF - do a normal printf (prefixed with **PID**)
VALGRIND_PRINTF_BACKTRACE - do a printf with stack trace
VALGRIND_INTERNAL_PRINTF - printf, but for internal use (prefixed with ==PID==)
VALGRIND_INTERNAL_PRINTF_BACKTRACE - as above, with backtrace


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1974 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
d799418996812817596beaa8b59563e3f3cb2dda 02-Oct-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Moved the MALLOCLIKE and FREELIKE client requests out of memcheck.h, and into
valgrind.h. Although these requests are not implemented by the core, they can
be implemented by skins that track heap blocks, eg. Memcheck, Annelid, Massif.
This is in preparation for committing Massif to the repository.

I think I managed to make the change in a binary-compatible way. The only
inconvenience for users is that if they have a client program compiled with the
old requests in, Valgrind will abort with an explanatory message that tells
them to recompile. Once they've done that (no changes to their program are
required), it works again.

I even updated the docs.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1881 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
6e69ecdc8436e2e6c0fcb2861fb1503ffcad3779 02-Oct-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fixed up the client request info in the docs, which required splitting the core
requests from the Memcheck requests and putting the descriptions in the
appropriate parts of the docs.

Removed the __VALGRIND_SOME_SKIN_H test -- it was designed to prevent people
#including valgrind.h when they probably want memcheck.h, but it's actually a
reasonable thing to do to #include valgrind.h alone, because there are some
requests in valgrind.h.

Removed references to VALGRIND_MAKE_NOACCESS_STACK from the docs, as it doesn't
exist in the implementation.

Fixed a few other minor things.

MERGE TO STABLE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1880 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
c229f5bab8f2149ff3ac1e8fd9d557c3627ff908 12-May-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> These client requests were moved to include/vg_skin.h a while ago, but I forgot
to delete them from here.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1626 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
4c791211835f0e90cbde578187c06e563de3b023 02-May-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Moved the CLIENT_tstCALL[0123] requests out of valgrind.h into vg_skin.h,
because there was no point exposing them to clients, as they don't know the
ThreadState type.

Also, removed the LOGMESSAGE request type, replaced it with calls to
VG_(message) via the generic VALGRIND_NON_SIMD_CALL2.

In fact, almost every single pthread client request could be removed in this
same way. That would result in less code, which would be nice... yeah, real
nice.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1584 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
057c65f4c980e1e46da862df6a84ed097249bbec 21-Apr-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Renamed VG_NON_SIMD_CALL1 (and friends) as VALGRIND_NON_SIMD_CALL1 to be
consistent with the names of the other client requests.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1534 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
47363aba8fa03b094195bca99fc232ce5f85605d 21-Apr-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added two client requests: VALGRIND_COUNT_ERRORS and VALGRIND_COUNT_LEAKS.
The first returns the number of errors found so far, and is a core request.
The second returns the number of bytes found
reachable/dubious/leaked/suppressed by all leak checks so far, for Memcheck and
Addrcheck.

Both are useful for using Valgrind in regression test suites where multiple
tests are present in a single file -- one can run Valgrind with no output
(using --logfile-fd=-1) and use the requests after each test to determine if
any errors happened.

Had to rename and make public vg_n_errs_found --> VG_(n_errs_found) to do so.
Nb: leak errors are not counted as errors for the purposes of
VALGRIND_COUNT_ERRORS. This was decided as the best thing to do after
discussion with Olly Betts, who original suggested these changes.

Pulled out common client request code shared between Memcheck and Addrcheck.

Added a regression test for this.

Added some documentation too.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1533 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.h
3e88418f808bf2840646504481d6a5be1df16541 15-Apr-2003 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> -----------------------------------------------------------------------------
overview
-----------------------------------------------------------------------------
Previously Valgrind had its own versions of malloc() et al that replaced
glibc's. This is necessary for various reasons for Memcheck, but isn't needed,
and was actually detrimental, to some other skins. I never managed to treat
this satisfactorily w.r.t the core/skin split.

Now I have. If a skin needs to know about malloc() et al, it must provide its
own replacements. But because this is not uncommon, the core provides a module
vg_replace_malloc.c which a skin can link with, which provides skeleton
definitions, to reduce the amount of work a skin must do. The skeletons handle
the transfer of control from the simd CPU to the real CPU, and also the
--alignment, --sloppy-malloc and --trace-malloc options. These skeleton
definitions subsequently call functions SK_(malloc), SK_(free), etc, which the
skin must define; in these functions the skin can do the things it needs to do
about tracking heap blocks.

For skins that track extra info about malloc'd blocks -- previously done with
ShadowChunks -- there is a new file vg_hashtable.c that implements a
generic-ish hash table (using dodgy C-style inheritance using struct overlays)
which allows skins to continue doing this fairly easily.

Skins can also replace other functions too, eg. Memcheck has its own versions
of strcpy(), memcpy(), etc.

Overall, it's slightly more work now for skins that need to replace malloc(),
but other skins don't have to use Valgrind's malloc(), so they're getting a
"purer" program run, which is good, and most of the remaining rough edges from
the core/skin split have been removed.

-----------------------------------------------------------------------------
details
-----------------------------------------------------------------------------
Moved malloc() et al intercepts from vg_clientfuncs.c into vg_replace_malloc.c.
Skins can link to it if they want to replace malloc() and friends; it does
some stuff then passes control to SK_(malloc)() et al which the skin must
define. They can call VG_(cli_malloc)() and VG_(cli_free)() to do the actual
allocation/deallocation. Redzone size for the client (the CLIENT arena) is
specified by the static variable VG_(vg_malloc_redzone_szB).
vg_replace_malloc.c thus represents a kind of "mantle" level service.

To get automake to build vg_replace_malloc.o, had to resort to a similar trick
as used for the demangler -- ask for a "no install" library (which is never
used) to be built from it.

Note that all malloc, calloc, realloc, builtin_new, builtin_vec_new, memalign
are now aware of --alignment, when running on simd CPU or real CPU.

This means the new_mem_heap, die_mem_heap, copy_mem_heap and ban_mem_heap
events no longer exist, since the core doesn't control malloc() any more, and
skins can watch for these events themselves.

This required moving all the ShadowChunk stuff out of the core, which meant
the sizeof_shadow_block ``need'' could be removed, yay -- it was a horrible
hack. Now ShadowChunks are done with a generic HashTable type, in
vg_hashtable.c, which skins can "inherit from" (in a dodgy C-only fashion by
using structs with similar layouts). Also, the free_list stuff was all moved
as a part of this. Also, VgAllocKind was moved out of core into
Memcheck/Addrcheck and renamed MAC_AllocKind.

Moved these options out of core into vg_replace_malloc.c:
--trace-malloc
--sloppy-malloc
--alignment

The alternative_free ``need'' could go, too, since Memcheck is now in complete
control of free(), yay -- another horribility.

The bad_free and free_mismatch events could go too, since they're now not
detected by core, yay -- yet another horribility.

Moved malloc() et al wrappers for Memcheck out of vg_clientmalloc.c into
mac_malloc_wrappers.c. Helgrind has its own wrappers now too.

Introduced VG_USERREQ__CLIENT_CALL[123] client requests. When a skin function
is operating on the simd CPU, this will call a given function and run it on the
real CPU. The macros VG_NON_SIMD_CALL[123] in valgrind.h present a cleaner
interface to actually use. Also introduce analogues of these that pass 'tst'
from the scheduler as the first arg to the called function -- needed for
MC_(client_malloc)() et al.

Fiddled with USERREQ_{MALLOC,FREE} etc. in vg_scheduler.c; they call
SK_({malloc,free})() which by default call VG_(cli_malloc)() -- can't call
glibc's malloc() here. All the other default SK_(calloc)() etc. instantly
panic; there's a lock variable to ensure that the default SK_({malloc,free})()
are only called from the scheduler, which prevents a skin from forgetting to
override SK_({malloc,free})(). Got rid of the unused USERREQ_CALLOC,
USERREQ_BUILTIN_NEW, etc.

Moved special versions of strcpy/strlen, etc, memcpy() and memchr() into
mac_replace_strmem.c -- they are only necessary for memcheck, because the
hyper-optimised normal glibc versions confuse it, and for memcpy() etc. overlap
checking.

Also added dst/src overlap checks to strcpy(), memcpy(), strcat(). They are
reported not as proper errors, but just with single line warnings, as for silly
args to malloc() et al; this is mainly because they're on the simulated CPU
and proper error handling would be a pain; hopefully they're rare enough to
not be a problem. The strcpy check is done after the copy, because it would
require counting the length of the string beforehand. Also added strncpy() and
strncat(), which have overlap checks too. Note that addrcheck doesn't do
overlap checking.

Put USERREQ__LOGMESSAGE in vg_skin.h to do the overlap check error messages.

After removing malloc() et al and strcpy() et al out of vg_clientfuncs.c, moved
the remaining three things (sigsuspend, VG_(__libc_freeres_wrapper),
__errno_location) into vg_intercept.c, since it contains things that run on the
simulated CPU too. Removed vg_clientfuncs.c altogether.

Moved regression test "malloc3" out of corecheck into memcheck, since corecheck
no longer looks for silly (eg. negative) args to malloc().

Removed the m_eip, m_esp, m_ebp fields from the `Error' type. They were being
set up, and then read immediately only once, only if GDB attachment was done.
So now they're just being held in local variables. This saves 12 bytes per
Error.

Made replacement calloc() check for --sloppy-malloc; previously it didn't.

Added "silly" negative size arg check to realloc(), it didn't have one.

Changed VG_(read_selfprocmaps)() so it can parse the file directly, or from a
previously read buffer. Buffer can be filled with the new
VG_(read_selfprocmaps_contents)(). Using this at start-up to snapshot
/proc/self/maps before the skins do anything, and then parsing it once they
have done their setup stuff. Skins can now safely call VG_(malloc)() in
SK_({pre,post}_clo_init)() without the mmap'd superblock erroneously being
identified as client memory.

Changed the --help usage message slightly, now divided into four sections: core
normal, skin normal, core debugging, skin debugging. Changed the interface for
the command_line_options need slightly -- now two functions, VG_(print_usage)()
and VG_(print_debug_usage)(), and they do the printing themselves, instead of
just returning a string -- that's more flexible.

Removed DEBUG_CLIENTMALLOC code, it wasn't being used and was a pain.

Added a regression test testing leak suppressions (nanoleak_supp), and another
testing strcpy/memcpy/etc overlap warnings (overlap).

Also changed Addrcheck to link with the files shared with Memcheck, rather than
#including the .c files directly.

Commoned up a little more shared Addrcheck/Memcheck code, for the usage
message, and initialisation/finalisation.

Added a Bool param to VG_(unique_error)() dictating whether it should allow
GDB to be attached; for leak checks, because we don't want to attach GDB on
leak errors (causes seg faults). A bit hacky, but it will do.

Had to change lots of the expected outputs from regression files now that
malloc() et al are in vg_replace_malloc.c rather than vg_clientfuncs.c.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1524 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
285f77f8204e23274b43068aa91ad04741fda043 16-Mar-2003 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Comment change only: remove discussion of --client-perms flag and clarify
performance consequences of client requests.

MERGE TO STABLE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1460 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
34a257cf51445a7149d3a57fb6ed003d08704830 15-Mar-2003 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Various fixes to the client-perms include files to stop gccs yelping
at high warning levels. Partially due to Andreas Jaeger and
Hans-Peter Nilsson.

MERGE TO STABLE.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1457 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
6591dc250c889506c5f6e1ccd939634de5a3ab74 15-Mar-2003 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> A little cpp magic to cause compilation to fail if valgrind.h is included
directly into sources (it should not be, and was causing people problems).

MERGE TO STABLE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1456 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
37091fb739760631f436043c47de612cf9fd2dd1 16-Nov-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge patch from JeremyF:

27-nvalgrind

Make valgrind.h pay attention to the preprocessor symbol NVALGRIND. If
defined, it compiles out the Valgrind magic sequence and just assigns
the result with the default return. This is analogous to NDEBUG's
effect on assert().


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1320 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
34042515c1715b3e0c5c0a5e0bd033e9d4858f01 22-Oct-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.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/include/valgrind.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/include/valgrind.h
57f12d38976e28f82dd200f090c5b7a1c7152f3b 06-Jun-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix typo in VALGRIND_MAKE_WRITABLE.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@393 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
18d7513cc08bf982711c8a22b70d56af6aa87b33 16-May-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove existing non-working support for self-modifying code, and instead
add a simple compromise, in which the client can notify valgrind
that certain code address ranges are invalid and should be retranslated.
This is done using the VALGRIND_DISCARD_TRANSLATIONS macro in valgrind.h.

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

Documentation updated.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@274 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
79be1064c1c41689e0271eab947435933d655d5e 16-Apr-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Get rid of the muraroa.demon.co.uk references since that account is
soon to disappear.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@83 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
2e93c50dc50235189661b70e3f27a4098d5ccccc 12-Apr-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Mega-merge of my last 2 weeks hacking. This basically does the groundwork
for pthread_* support. Major changes:

* Valgrind now contains a (skeletal!) user-space pthreads
implementation. The exciting bits are in new file vg_scheduler.c.
This contains thread management and scheduling, including nasty crud
to do with making some syscalls (read,write,nanosleep) nonblocking.
Also implementation of pthread_ functions: create join
mutex_{create,destroy,lock,unlock} and cancel.

* As a side effect of the above, major improvements to signal handling
and to the client-request machinery. This is now used to intercept
malloc/free etc too; the hacky way this is done before is gone.
Another side effect is that vg_dispatch.S is greatly simplified.
Also, the horrible hacks to do with delivering signals to threads
blocked in syscalls are gone, since the new mechanisms cover this case
easily.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@52 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/include/valgrind.h
de4a1d01951937632098a6cda45859afa587a06f 22-Mar-2002 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Initial revision


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