summaryrefslogtreecommitdiff
path: root/coregrind/m_sigframe
AgeCommit message (Collapse)AuthorFilesLines
2010-05-03Update copyright dates to 2010.sewardj9-13/+13
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
2010-01-01Merge from branches/ARM, all parts of the ARM-Linux port except forsewardj1-0/+337
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.sewardj6-21/+23
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-24This commit merges the BUILD_TWEAKS branch onto the trunk. It has thenjn8-7/+39
following improvements: - Arch/OS/platform-specific files are now included/excluded via the preprocessor, rather than via the build system. This is more consistent (we use the pre-processor for small arch/OS/platform-specific chunks within files) and makes the build system much simpler, as the sources for all programs are the same on all platforms. - Vast amounts of cut+paste Makefile.am code has been factored out. If a new platform is implemented, you need to add 11 extra Makefile.am lines. Previously it was over 100 lines. - Vex has been autotoolised. Dependency checking now works in Vex (no more incomplete builds). Parallel builds now also work. --with-vex no longer works; it's little use and a pain to support. VEX/Makefile is still in the Vex repository and gets overwritten at configure-time; it should probably be renamed Makefile-gcc to avoid possible problems, such as accidentally committing a generated Makefile. There's a bunch of hacky copying to deal with the fact that autotools don't handle same-named files in different directories. Julian plans to rename the files to avoid this problem. - Various small Makefile.am things have been made more standard automake style, eg. the use of pkginclude/pkglib prefixes instead of rolling our own. - The existing five top-level Makefile.am include files have been consolidated into three. - Most Makefile.am files now are structured more clearly, with comment headers separating sections, declarations relating to the same things next to each other, better spacing and layout, etc. - Removed the unused exp-ptrcheck/tests/x86 directory. - Renamed some XML files. - Factored out some duplicated dSYM handling code. - Split auxprogs/ into auxprogs/ and mpi/, which allowed the resulting Makefile.am files to be much more standard. - Cleaned up m_coredump by merging a bunch of files that had been overzealously separated. The net result is 630 fewer lines of Makefile.am code, or 897 if you exclude the added Makefile.vex.am, or 997 once the hacky file copying for Vex is removed. And the build system is much simpler. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10364 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-05-28Merge the DARWIN branch onto the trunk.njn2-0/+300
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-03-17Fix some incorrect end comments.njn2-2/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9452 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-03-10Updated copyright years.njn6-8/+8
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
2009-02-24Remove a number of unused parameters, found with -Wunused-parameter.njn1-7/+6
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9248 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-07-18Format string fixes for ppc{32,64}-aix5.sewardj2-6/+6
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8444 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-07-07Merged FORMATCHECK branch (r8368) to trunk.bart4-20/+20
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8369 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-06-13Propagate the error number in x86 signal contexts to the client.tom2-18/+32
Fixes bug #163933. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8229 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-05-06Un-break signal frame delivery on ppc64 following recent Memchecksewardj1-2/+4
origin tracking changes. This is believed to fix #161628. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8011 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-05-01Merge branches/OTRACK_BY_INSTRUMENTATION into the trunk. This addssewardj6-43/+73
support to Memcheck for tracking the origin of uninitialised values, if you use the --track-origins=yes flag. This currently causes some Memcheck regression tests to fail, because they now print an extra line of advisory text in their output. This will be fixed. The core-tool interface is slightly changed. The version number for the interface needs to be incremented. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7982 a5019735-40e9-0310-863c-91ae7b9d1cf9
2008-02-11Update copyright dates ("200X-2007" --> "200X-2008").sewardj6-8/+8
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
2007-12-21Propagate the ucontext information with a received signal to thetom6-11/+38
signal frame constructors and use it (on x86 and amd64) to fill in the trap number in the signal context information. Needed for wine which likes to look at the trap number... git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7305 a5019735-40e9-0310-863c-91ae7b9d1cf9
2007-09-10ppc64-linux equivalent to r6813 (use sigframe return stub insewardj1-3/+11
m_trampoline, not on the stack) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6814 a5019735-40e9-0310-863c-91ae7b9d1cf9
2007-09-10ppc32-linux signal handling: don't place the sigframe return stub onsewardj1-6/+17
the stack; instead use a stub in m_trampoline.S. This makes it possible to deliver signals on non-executable stacks, and makes the behaviour consistent with x86-linux and amd64-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6813 a5019735-40e9-0310-863c-91ae7b9d1cf9
2007-04-29Add disclaimers.sewardj2-0/+10
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6709 a5019735-40e9-0310-863c-91ae7b9d1cf9
2007-01-08Update copyright dates.sewardj6-8/+8
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-10-17Track VG_(am_find_nsegment) const-ness change.sewardj4-7/+6
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6290 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-10-17Merge r6095:sewardj2-0/+474
A minimal sigframe implementation for AIX5. Works but does not provide valid siginfo or ucontext to handlers. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6246 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-10-14Unbreak amd64-linux after recent commits.sewardj1-0/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6229 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-10-14Unbreak ppc{32,64}-linux after recent commits.sewardj2-2/+4
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6228 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-06-05Update copyright dates.sewardj4-6/+6
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-02-15Restore RIP on return from a signal handler on amd64 - mirrors thetom1-1/+1
change in revision 5641 to restore EIP on x86. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5652 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-02-12Restore %EIP from the info passed to the handler (ucontext), so as tosewardj1-2/+1
be able to deal with signal handlers that mess with third_arg->uc_mcontext.gregs[REG_EIP]. Apparently Wine does this. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5641 a5019735-40e9-0310-863c-91ae7b9d1cf9
2006-01-03First cut at signal frame build/removal for ppc64-linux. Ghastlysewardj1-286/+237
stuff, but it does at least appear to do simple signal stuff correctly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5483 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-29Add framework for ppc64 support. Apologies in advance for thesewardj1-0/+421
inevitable breakage to other platforms. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-11-17Get rid of bogus assertion.sewardj1-4/+10
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5166 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-10-31Get core dumping working again - the architecture specific code that tom3-176/+0
was in the sigframe module has been moved into the coredump module where it belongs and things fixed up to compiler again. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4970 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-09-29Make ppc32-linux build again following aspacem merge. Doesn't work, though:sewardj1-6/+5
programs crash before reaching main. I don't know why. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4819 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-09-27This commit merges in changes from branches/ASPACEM (specifically,sewardj4-24/+8
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-28Give file a better name.njn1-1/+1
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4546 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-18Track API changes in vex r1272.sewardj1-5/+4
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4159 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-08Import sigframe stuff from Paul's tree. With this and the other changes sewardj1-106/+361
today, it's possible to run bash on ppc32-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4138 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-07-02Removed the remnants of the attempt at an ARM port, because it hadnjn1-307/+0
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
2005-07-02Fixed 'make dist'. In particular, all the arch/platform-specific filesnjn1-0/+4
get included in the distro now, not just the ones for the arch/platform that the distro tarball is built on. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4085 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-23Removed the VGA_/VGO_/VGP_ prefixes for arch/OS/platform-specificnjn4-26/+26
things. These made sense when the arch/OS/platform-specific code was in one module, but as that code got mixed in with generic code the boundary between generic and non-generic blurred, and the distinction made less sense. So let's get rid of them. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4002 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-21Simplify the implementation of m_trampoline and the stuff that referssewardj2-6/+3
to it. Now there are no more offsets and no copying of code into the stack. We just redirect directly to entry points in m_syscalls.S. This will mess up pointercheck, since the redirect targets are now in Valgrind's address space, not the client's. But pointercheck is hosed anyway, and I'd rather back off to something simple whilst ppc32 is stabilised. When the address space management stuff is overhauled then pointercheck may or may not get reinstated, and if it does then the trampoline stuff will need revisiting. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3977 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-21Don't #include pub_core_debuginfo.h in pub_core_aspacemgr.h. So havenjn3-0/+3
to #include it explicitly in lots of other places, but at least the dependency is clear now. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3974 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-20Finally, valgrind on ppc32.cerion1-0/+760
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-19Get "make dist" closer to working again.njn1-3/+0
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3946 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-19Final commit for the initial modularisation pass:njn3-7/+5
- 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-18Moved the code trampoline stuff into a new module, m_trampoline. Notnjn2-0/+2
certain this was the right thing to do, but that stuff sure as hell didn't fit in any of the existing modules. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3929 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-13Created m_machine, for various machine-related things.njn2-2/+4
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3903 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-04Modularised assertions and panics in m_libcassert.njn2-0/+2
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
2005-06-03Modularise printing functions in m_libcprint.njn2-0/+2
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3840 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-02Rename *ROUND* as VG_*ROUND* to be consistent with everything else. Alsonjn2-3/+3
make them tool-visible, so that Memcheck and Helgrind don't have to defined their own versions! git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3839 a5019735-40e9-0310-863c-91ae7b9d1cf9
2005-06-02Started modularising vg_mylibc. Put all the standalone stuff -- ie. notnjn2-0/+2
relying on any other modules -- in m_libcbase. Also converted the 'size' parameters to functions like VG_(memcpy) and VG_(strncpy) from Int to SizeT, as they should be. Also removed VG_(atoll16) and VG_(toupper), which weren't being used. Also made VG_(atoll36) less flexible -- it now only does base-36 numbers instead of any base in the range 2..36, since base-36 is the only one we need. As part of that, I fixed a horrible bug in it which caused it to return incorrect answers for any number containing the digits 'A'..'I'! (Eg. for "A; it would return 17 instead of 10!) Had to disable the assertions in VG_(string_match), since this module can't see vg_assert, which wasn't ideal but also isn't a disaster. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3838 a5019735-40e9-0310-863c-91ae7b9d1cf9