generally rationalise it as the structure of Intel's encoding scheme
becomes more apparent. Add a bunch more instructions.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1657
work, when running on a P4 with an NVidia Vanta card and using
NVidia-supplied libGL.so.1.0.3123. Surprisingly this seems to require
only a minimal set of instructions. So far this is only with
--skin=none.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1652
code (also removing the perennial problem of matching the error strings to the
functions they were in).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1649
use a custom-allocator and detect almost as many errors as you could detect if
you used malloc/new/new[]. (eg. leaks detected, free errors, free mismatch,
etc).
Had to fiddle with mac_malloc_wrappers.c a bit to factor out the appropriate
code to be called from the client request handling code. Also had to add a
new element `MAC_AllocCustom' to the MAC_AllocKind type.
Also added a little documentation, and a regression test.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1643
Removed the SK_(written_shadow_regs_values)() function. Instead, skins that
use shadow regs can track the `post_regs_write_init' event, and set the shadow
regs from within it. This is much more flexible, since it allows each shadow
register to be set to a separate value if necessary. It also matches the new
shadow-reg-change events described below.
In the core, there were some places where the shadow regs were changed, and
skins had no way of knowing about it, which was a problem for some skins.
So I added a bunch of new events to notify skins about these:
post_reg_write_syscall_return
post_reg_write_deliver_signal
post_reg_write_pthread_return
post_reg_write_clientreq_return
post_reg_write_clientcall_return
Any skin that uses shadow regs should almost certainly track these events. The
post_reg_write_clientcall_return allows a skin to tailor the shadow reg of the
return value of a CLIENTCALL'd function appropriately; this is especially
useful when replacing malloc() et al.
Defined some macros that should be used *whenever the core changes the value of
a shadow register* :
SET_SYSCALL_RETVAL
SET_SIGNAL_EDX (maybe should be SET_SIGNAL_RETVAL? ... not sure)
SET_SIGNAL_ESP
SET_CLREQ_RETVAL
SET_CLCALL_RETVAL
SET_PTHREQ_ESP
SET_PTHREQ_RETVAL
These replace all the old SET_EAX and SET_EDX macros, and are added in a few
places where the shadow-reg update was missing.
Added shadow registers to the machine state saved/restored when signal handlers
are pushed/popped (they were missing).
Added skin-callable functions VG_(set_return_from_syscall_shadow)() and
VG_(get_exit_status_shadow)() which are useful and abstract away from which
registers the results are in.
Also, poll() changes %ebx (it's first argument) sometimes, I don't know why.
So we notify skins about that too (with the `post_reg_write_syscall_return'
event, which isn't ideal I guess...)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1642
(prerelease) (SuSE Linux)") seems to complain about signed-vs-unsigned
comparisons, when -Wall is on. This commit fixes (most of) those
complaints.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1638
lines (it was 3 due to a bug).
Also removed VG_(get_suppressions)() which wasn't being used, and changed
VG_(exitcode) to an Int, as it should be.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1628
- Change various incorrect direct references to errno into
*(__errno_location()).
- In __errno_location and __h_errno_location, treat the tid==1 case
(root thread) specially, as with __res_state().
This seems to fix a bug in threaded handling of errno on R H 9 and SuSE8.2,
and almost makes OpenOffice work again on R H 9.
MERGE TO STABLE, if it doesn't break anything.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1625
Hi,
recently I found that there is sometimes cost attributed to some
strange lines (with cachegrind/calltree) with GCC 3.x (using the
DWARF2 debug info format).
I had time to look at this. There is a bug in the DWARF2 debug line
info loader when instructions following each other have source lines
far from each other (e.g. with inlined functions).
MERGE TO STABLE
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1619
under some setups.
Also fixed problem with Cachegrind tests, by filtering out P4s'
warning message.
Also fixed 'mismatches'.
------------------------------------------------------------
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1616
requiring "make install". This is good for two reasons:
1. shorter compile times ("make" instead of "make install")
2. don't need to install before running the regression tests
Changes:
- root Makefile now builds a libpthread.so.0 symlink to libpthread.so, which
was needed.
- startup script accepts a --in-place=<dir> option for running a non-installed
version, where <dir> is the root of the src tree
- VG_(mash_LD_PRELOAD_and_LD_LIBRARY_PATH) had to be fiddled with a bit
- tests/vg_regtest now uses the --in-place option to test the non-installed
version
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1614