summaryrefslogtreecommitdiff
path: root/coregrind/m_libcassert.c
AgeCommit message (Collapse)AuthorFilesLines
2011-06-28Delete the AIX5 port. The last release this worked for is 3.4.1,sewardj1-3/+3
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
2011-04-11Create new module m_libcsetjmp, which wraps up uses ofsewardj1-0/+1
__builtin_setjmp and __builtin_longjmp so that they can be selectively replaced, on a platform by platform basis. Does not change any functionality. Related to #259977. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11687 a5019735-40e9-0310-863c-91ae7b9d1cf9
2011-03-07Add a port to IBM z/Architecture (s390x) running Linux -- Valgrindsewardj1-0/+16
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
2010-09-23On arm-linux, add r7 to the set of registers that the CFI unwindersewardj1-1/+3
knows how to unwind. This is important when unwinding Thumb code the CFA is often stated as being at some offset from r7. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11377 a5019735-40e9-0310-863c-91ae7b9d1cf9
2010-05-03Update copyright dates to 2010.sewardj1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
2010-01-02Various minor fixups to make ppc32/64-linux work again followingsewardj1-6/+6
recent ARM-Linux merge. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10992 a5019735-40e9-0310-863c-91ae7b9d1cf9
2010-01-01Merge from branches/ARM, all parts of the ARM-Linux port except forsewardj1-55/+103
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
2009-07-15Merge coregrind/ changes from branches/MESSAGING_TIDYUP r10464.sewardj1-16/+19
This commit tidies up and rationalises what could be called the "messaging" system -- that part of V to do with presenting output to the user. In particular it brings significant improvements to XML output. Changes are: * XML and normal text output now have separate file descriptors, which solves longstanding problems for XML consumers caused by the XML output getting polluted by unexpected non-XML output. * This also means that we no longer have to hardwire all manner of output settings (verbosity, etc) when XML is requested. * The XML output format has been revised, cleaned up, and made more suitable for use by error detecting tools in general (various Memcheck-specific features have been removed). XML output is enabled for Ptrcheck and Helgrind, and Memcheck is updated to the new format. * One side effect is that the behaviour of VG_(message) has been made to be consistent with printf: it no longer automatically adds a newline at the end of the output. This means multiple calls to it can be used to build up a single line message; or a single call can write a multi-line message. The ==pid== preamble is automatically inserted at each newline. * VG_(message)(Vg_UserMsg, ..args..) now has the abbreviated form VG_(UMSG)(..args..); ditto VG_(DMSG) for Vg_DebugMsg and VG_(EMSG) for Vg_DebugExtraMsg. A couple of other useful printf derivatives have been added to pub_tool_libcprint.h, most particularly VG_(vcbprintf). * There's a small change in the core-tool interface to do with error handling: VG_(needs_tool_errors) has a new method void (*before_pp_Error)(Error* err) which, if non-NULL, is called just before void (*pp_Error)(Error* err). This is to give tools the chance to look at errors before any part of them is printed, so they can print any XML preamble they like. * coregrind/m_errormgr.c has been overhauled and cleaned up, and is a bit simpler and more commented. In particular pp_Error and VG_(maybe_record_error) are significantly changed. The diff is huge, but mostly very boring. Most of the changes are of the form - VG_(message)(Vg_UserMsg, "this is a message %d", n); + VG_(message)(Vg_UserMsg, "this is a message %d\n", n); Unfortunately as a result of this, it touches a large number of source files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10465 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-06-09Avoid recursion in VG_(exit).njn1-1/+4
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10285 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-05-28Merge the DARWIN branch onto the trunk.njn1-3/+3
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
2009-05-19Tweak VG_(exit).njn1-5/+6
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9951 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-05-11Factor out the name of the libpthread library. Also fix a minor stack tracenjn1-8/+10
bogon. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9832 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-04-16Made the Valgrind abort/crash message clearer about the fact that it can benjn1-8/+13
caused by heap corruption by the client. Also clarified the FAQ about this. Also updated the FAQ about decoding failures a little. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9556 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-04-15Avoid non-local asm labels. Fixes bug #189054.njn1-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9539 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-03-12Added some shortcuts for VG_(message)(), and used them in a few places (butnjn1-23/+14
certainly not all). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9367 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-03-10Updated copyright years.njn1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-03-03Merge in the DATASYMS branch.sewardj1-2/+7
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7540 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-02-11Update copyright dates ("200X-2007" --> "200X-2008").sewardj1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
2007-09-23Fix various format string errors, courtesy of Florian Krohm.njn1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6902 a5019735-40e9-0310-863c-91ae7b9d1cf9
2007-01-08Update copyright dates.sewardj1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-12-17Rename VG_(get_lwp_tid) to VG_(lwpid_to_vgtid).sewardj1-1/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6409 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-10-17Merge r6159 (parts of):sewardj1-11/+9
Minor build-system adjustments, mostly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6289 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-10-14Create a new module, m_vki, and move all knowledge about the kernelsewardj1-0/+1
interface, except for the syscall numbers, into that. Mostly this means moving include/vki-*.h to include/vki/vki-*.h. include/pub_tool_basics.h previously dragged in the entire kernel interface. I've done away with that, so that modules which need to see the kernel interface now have to include pub_{core,tool}_vki.h explicitly. This is why there are many modified .c files -- they have all acquired an extra #include line. This certainly breaks all platforms except x86. Will fix shortly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6225 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-10-14Create a new module, m_vkiscnums, and move all the system call numberssewardj1-1/+1
into that. Mostly this means moving vki_unistd-<plat>.h to include/vki/vki-scnums-<plat>.h. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6224 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-06-05Update copyright dates.sewardj1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-01-18Make VG_(get_StackTrace2) aware of bogus LR values insewardj1-1/+2
replacement/wrapper functions on ppc64-linux, which otherwise mess up the backtraces. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5549 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-12-22fixed up ppc64 assembly with .opd sectionscerion1-2/+2
do_syscall_for_client_WRK() needed a bigger stack to avoid the linkage area. always use dot_prefix for label calls not wrapping assembly with .section ".text" ... .previous - ppc64 doesn't like it... seems we can't 'stack' more than one section to pop off with .previous ? git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5405 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-29Add framework for ppc64 support. Apologies in advance for thesewardj1-0/+14
inevitable breakage to other platforms. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-14In XML mode, emit a closing </valgrindoutput> on various kinds ofsewardj1-0/+8
failures, so as to help parsers stop parsing: - after any kind of assertion failure or panic - if suppression file is missing or has a syntax error git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5130 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-05Fix stack unwinding on ppc.sewardj1-6/+13
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5022 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-05Commit Tom's improved-stack-unwinding patch.sewardj1-12/+17
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5021 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-09-27This commit merges in changes from branches/ASPACEM (specifically,sewardj1-2/+1
changes from r4341 through r4787 inclusive). That branch is now dead. Please do not commit anything else to it. For the most part the merge was not troublesome. The main areas of uncertainty are: - build system: I had to import by hand Makefile.core-AM_CPPFLAGS.am and include it in a couple of places. Building etc seems to still work, but I haven't tried building the documentation. - syscall wrappers: Following analysis by Greg & Nick, a whole lot of stuff was moved from -generic to -linux after the branch was created. I think that is satisfactorily glued back together now. - Regtests: although this appears to work, no .out files appear, which is strange, and makes it hard to diagnose regtest failures. In particular memcheck/tests/x86/scalar.stderr.exp remains in a conflicted state. - amd64 is broken (slightly), and ppc32 will be unbuildable. I'll attend to the former shortly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4789 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-08-19Incorporate a patch from Craig Chaney which gives better stacksewardj1-9/+10
snapshots on ppc32-linux in the presence of functions subject to leaf-function optimisations. At the same time, simplify the stack unwinding logic by basically implementing it separately for each target. Having a single piece of logic for amd64 and x86 was tenable, but merging ppc32 into it is too confusing. So now there is an x86/amd64 unwinder and a ppc32 unwinder. This requires plumbing a link-register value into VG_(get_StackTrace2), and that in turn requires passing it around several other stack-trace-related functions. Hence 7 changed files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4464 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-20Reinstate stack trace printing on assertion failures. It's terriblenjn1-48/+41
for the module dependency graph, but it's very useful. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4205 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-26While we're not printing stacktraces from assertion failures, mightnjn1-43/+45
as well disable pp_sched_status() -- which produces traces that are less useful than the main one that has been disabled -- and break the circular dependence between m_libcassert and m_threadstate. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4036 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-25Do not print backtraces in assertion failures. This is an as-yetsewardj1-44/+45
unsuccessful attempt to remove m_libcassert from the huge cycle which most of the modules currently live in. VG_(get_StackTrace2) can now be privatised, but I haven't done so yet. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4018 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-21wibblenjn1-2/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3984 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-20Tweak comments and remove an unnecessary #include.njn1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3972 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-20Finally, valgrind on ppc32.cerion1-0/+6
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
2005-06-20Use BACKTRACE_DEPTH consistently.njn1-5/+3
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3967 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-20Remove some unnecessary #includes, comment some others.njn1-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3966 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-19Move VG_(bbs_done) out of main and make it local in scheduler.c. Thisnjn1-3/+4
removes the dependence of m_translate.c and m_libcassert.c on m_main.c. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3954 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-19Final commit for the initial modularisation pass:njn1-4/+21
- Broke part of m_scheduler off into a new module m_threadstate. It contains ThreadState, VG_(threads)[] and some basic operations on the thread table. All simple stuff, the complex stuff stays in m_scheduler. This avoids lots of circular dependencies between m_scheduler and other modules. - Managed to finally remove core.h and tool.h, double hurrah! - Introduced pub_tool_basics.h and pub_core_basics.h, one of which is include by every single C file. - Lots of little cleanups and changes related to the above. - I even did a small amount of documentation updating. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3944 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-17Moved the basic syscall stuff out of m_libcbase.c into a new modulenjn1-0/+1
m_syscall.c. Plus some associated cleanups. Moved VG_(sigreturn) into m_signals.c and made it local. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3922 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-12Finished the modularisation of vg_mylibc.c, which meant it could be removed.njn1-0/+13
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3894 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-04Modularised assertions and panics in m_libcassert.njn1-0/+194
As part of this, killed the VG_STRINGIFY macro, which was used to expand out names like "VG_(foo)" and "vgPlain_foo" in assertion failure messages. This is good since we actually want the "VG_(foo)" form used in these messages. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3842 a5019735-40e9-0310-863c-91ae7b9d1cf9