mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-13 22:46:59 +00:00
- 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
176 lines
6.1 KiB
Makefile
176 lines
6.1 KiB
Makefile
SUBDIRS = ${VG_ARCH} .
|
|
|
|
noinst_SCRIPTS = filter_allocs filter_leak_check_size \
|
|
filter_stderr filter_stderr_backtrace
|
|
|
|
EXTRA_DIST = $(noinst_SCRIPTS) \
|
|
badaddrvalue.stderr.exp \
|
|
badaddrvalue.stdout.exp badaddrvalue.vgtest \
|
|
badfree-2trace.stderr.exp badfree-2trace.vgtest \
|
|
badfree.stderr.exp badfree.vgtest \
|
|
badjump.stderr.exp badjump.vgtest \
|
|
badjump2.stderr.exp badjump2.vgtest \
|
|
badloop.stderr.exp badloop.vgtest \
|
|
badpoll.stderr.exp badpoll.vgtest \
|
|
badrw.stderr.exp badrw.vgtest \
|
|
brk.stderr.exp brk.vgtest \
|
|
brk2.stderr.exp brk2.vgtest \
|
|
buflen_check.stderr.exp buflen_check.vgtest \
|
|
clientperm.stderr.exp \
|
|
clientperm.stdout.exp clientperm.vgtest \
|
|
custom_alloc.stderr.exp custom_alloc.vgtest \
|
|
doublefree.stderr.exp doublefree.vgtest \
|
|
error_counts.stderr.exp error_counts.stdout.exp error_counts.vgtest \
|
|
errs1.stderr.exp errs1.vgtest \
|
|
exitprog.stderr.exp exitprog.vgtest \
|
|
execve.stderr.exp execve.vgtest \
|
|
execve2.stderr.exp execve2.vgtest \
|
|
fprw.stderr.exp fprw.vgtest \
|
|
fwrite.stderr.exp fwrite.stdout.exp fwrite.vgtest \
|
|
inits.stderr.exp inits.vgtest \
|
|
inline.stderr.exp inline.stdout.exp inline.vgtest \
|
|
malloc1.stderr.exp malloc1.vgtest \
|
|
malloc2.stderr.exp malloc2.vgtest \
|
|
malloc3.stderr.exp malloc3.stdout.exp malloc3.vgtest \
|
|
manuel1.stderr.exp manuel1.stdout.exp manuel1.vgtest \
|
|
manuel2.stderr.exp manuel2.stdout.exp manuel2.vgtest \
|
|
manuel3.stderr.exp manuel3.vgtest \
|
|
memalign_test.stderr.exp memalign_test.vgtest \
|
|
memalign2.stderr.exp memalign2.vgtest \
|
|
memcmptest.stderr.exp memcmptest.stdout.exp memcmptest.vgtest \
|
|
mempool.stderr.exp mempool.vgtest \
|
|
mismatches.stderr.exp mismatches.vgtest \
|
|
mmaptest.stderr.exp mmaptest.vgtest \
|
|
nanoleak.stderr.exp nanoleak.vgtest \
|
|
nanoleak_supp.stderr.exp nanoleak_supp.vgtest nanoleak.supp \
|
|
new_nothrow.stderr.exp new_nothrow.vgtest \
|
|
new_override.stderr.exp new_override.stdout.exp new_override.vgtest \
|
|
null_socket.stderr.exp null_socket.vgtest \
|
|
overlap.stderr.exp overlap.stdout.exp overlap.vgtest \
|
|
pth_once.stderr.exp pth_once.stdout.exp pth_once.vgtest \
|
|
realloc1.stderr.exp realloc1.vgtest \
|
|
realloc2.stderr.exp realloc2.vgtest \
|
|
realloc3.stderr.exp realloc3.vgtest \
|
|
scalar.stderr.exp scalar.vgtest \
|
|
scalar_supp.stderr.exp scalar_supp.vgtest scalar.supp \
|
|
sigaltstack.stderr.exp sigaltstack.vgtest \
|
|
signal2.stderr.exp \
|
|
signal2.stdout.exp signal2.vgtest \
|
|
str_tester.stderr.exp str_tester.vgtest \
|
|
supp1.stderr.exp supp1.vgtest \
|
|
supp2.stderr.exp supp2.vgtest \
|
|
supp.supp \
|
|
suppfree.stderr.exp suppfree.vgtest \
|
|
toobig-allocs.stderr.exp toobig-allocs.vgtest \
|
|
trivialleak.stderr.exp trivialleak.vgtest \
|
|
weirdioctl.stderr.exp weirdioctl.stdout.exp weirdioctl.vgtest \
|
|
metadata.stderr.exp metadata.stdout.exp metadata.vgtest \
|
|
threadederrno.stderr.exp threadederrno.stdout.exp \
|
|
threadederrno.vgtest \
|
|
vgtest_ume.stderr.exp vgtest_ume.vgtest \
|
|
writev.stderr.exp writev.stderr.exp2 writev.vgtest \
|
|
zeropage.stderr.exp zeropage.stderr.exp2 zeropage.vgtest
|
|
|
|
check_PROGRAMS = \
|
|
badaddrvalue badfree badjump badjump2 \
|
|
badloop badpoll badrw brk brk2 buflen_check \
|
|
clientperm custom_alloc \
|
|
doublefree error_counts errs1 exitprog execve execve2 \
|
|
fprw fwrite hello inits inline \
|
|
malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 \
|
|
memalign_test memalign2 memcmptest mempool mmaptest \
|
|
nanoleak new_nothrow \
|
|
null_socket overlap \
|
|
realloc1 realloc2 realloc3 scalar sigaltstack signal2 \
|
|
str_tester supp1 supp2 suppfree \
|
|
trivialleak weirdioctl \
|
|
mismatches new_override metadata threadederrno \
|
|
vgtest_ume \
|
|
writev zeropage
|
|
|
|
|
|
AM_CPPFLAGS = -I$(top_builddir)/include
|
|
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g
|
|
AM_CXXFLAGS = $(AM_CFLAGS)
|
|
|
|
# C ones
|
|
badaddrvalue_SOURCES = badaddrvalue.c
|
|
badfree_SOURCES = badfree.c
|
|
badjump_SOURCES = badjump.c
|
|
badjump2_SOURCES = badjump2.c
|
|
badloop_SOURCES = badloop.c
|
|
badpoll_SOURCES = badpoll.c
|
|
badrw_SOURCES = badrw.c
|
|
brk_SOURCES = brk.c
|
|
brk2_SOURCES = brk2.c
|
|
buflen_check_SOURCES = buflen_check.c
|
|
clientperm_SOURCES = clientperm.c
|
|
custom_alloc_SOURCES = custom_alloc.c
|
|
doublefree_SOURCES = doublefree.c
|
|
error_counts_SOURCES = error_counts.c
|
|
errs1_SOURCES = errs1.c
|
|
execve_SOURCES = execve.c
|
|
execve2_SOURCES = execve2.c
|
|
exitprog_SOURCES = exitprog.c
|
|
fprw_SOURCES = fprw.c
|
|
fwrite_SOURCES = fwrite.c
|
|
inits_SOURCES = inits.c
|
|
inline_SOURCES = inline.c
|
|
malloc1_SOURCES = malloc1.c
|
|
malloc2_SOURCES = malloc2.c
|
|
malloc3_SOURCES = malloc3.c
|
|
manuel1_SOURCES = manuel1.c
|
|
manuel2_SOURCES = manuel2.c
|
|
manuel3_SOURCES = manuel3.c
|
|
mmaptest_SOURCES = mmaptest.c
|
|
memalign_test_SOURCES = memalign_test.c
|
|
memalign2_SOURCES = memalign2.c
|
|
memcmptest_SOURCES = memcmptest.c
|
|
mempool_SOURCES = mempool.c
|
|
nanoleak_SOURCES = nanoleak.c
|
|
null_socket_SOURCES = null_socket.c
|
|
overlap_SOURCES = overlap.c
|
|
realloc1_SOURCES = realloc1.c
|
|
realloc2_SOURCES = realloc2.c
|
|
realloc3_SOURCES = realloc3.c
|
|
scalar_SOURCES = scalar.c
|
|
signal2_SOURCES = signal2.c
|
|
supp1_SOURCES = supp.c
|
|
supp2_SOURCES = supp.c
|
|
suppfree_SOURCES = suppfree.c
|
|
sigaltstack_SOURCES = sigaltstack.c
|
|
trivialleak_SOURCES = trivialleak.c
|
|
weirdioctl_SOURCES = weirdioctl.c
|
|
metadata_SOURCES = metadata.c
|
|
str_tester_SOURCES = str_tester.c
|
|
str_tester_CFLAGS = $(AM_CFLAGS) -Wno-shadow
|
|
threadederrno_SOURCES = threadederrno.c
|
|
threadederrno_LDADD = -lpthread
|
|
writev_SOURCES = writev.c
|
|
zeropage_SOURCES = zeropage.c
|
|
|
|
# C++ ones
|
|
mismatches_SOURCES = mismatches.cpp
|
|
new_nothrow_SOURCES = new_nothrow.cpp
|
|
new_override_SOURCES = new_override.cpp
|
|
|
|
# Valgrind unit self-tests
|
|
hello_SOURCES = hello.c
|
|
## If we support PIE, build hello as a PIE, otherwise vgtest_ume cannot load
|
|
## (I'm not completely sure why, since stage2 can load both PIEs and non-PIEs,
|
|
## maybe it's because stage2 is loaded up high; anyway, it doesn't really
|
|
## matter so long as vgtest_ume can load hello ok. --njn)
|
|
if USE_PIE
|
|
hello_CFLAGS = $(AM_CFLAGS) -fpie
|
|
hello_LDFLAGS = -pie
|
|
else
|
|
hello_LDFLAGS = -Wl,-defsym,kickstart_base=0x50000000 \
|
|
-Wl,-T,../../coregrind/${VG_ARCH}/stage2.lds
|
|
hello_DEPENDENCIES = ../../coregrind/${VG_ARCH}/stage2.lds
|
|
endif
|
|
|
|
vgtest_ume_SOURCES = vgtest_ume.c
|
|
vgtest_ume_LDADD = ../../coregrind/ume.o \
|
|
../../coregrind/jmp_with_stack.o
|
|
|