The patches to valgrind-3.3.0 which enable User Mode Linux (UML) to run under memcheck for x86 on x86 have been separated into logical groups, updated with test cases and documentation, reviewed once, and updated to svn version 7358. ("Extra" patches to some Makefile.in have been left for the benefit of those who start with the released tarball of valgrind-3.3.0.)
Please consider these patches for inclusion into valgrind: 23KB http://bitwagon.com/valgrind+uml/vg330-patches-jreiser0127.tgz Here is a brief description of each of the 6 submitted patches: ----- clone-1-childSP.patch This patch implements setting the child stack pointer on a fork-like clone(). clone-2-flags.patch This patch handles more combinations of flag arguments to clone(), specifically for VKI_CLONE_FS and VKI_CLONE_FILES. clone-3-letgo.patch This patch implements a new flag which allows clone() to request that the new child run natively (not be virtualized.) sigframe.patch This patch gives a memory map when an attempt to extend the stack fails, allows the stack to be in a mmapped file, and detects an obscure failure of sigprocmask() that hindered work on UserModeLinux. stacks.patch This patch adds two new client commands: VALGRIND_STACK_DEREGADDR de-register a stack by address (instead of by id) VALGRIND_STACK_SWITCH so that user-level threading can co-operate use-without-install.patch This patch gives more literal directions on how to run newly-built software without requiring "make install". ----- The .tgz file also contains two additional patches which so far have proved to be useful to this developer, but the reviewer suggested that they be held for further work: ----- bogey.patch This patch adds a VALGRIND_SET_BOGEY client command which allows tracing the changes to the accounting information for one specific dynamic address. VALGRIND_SET_BOGEY is a debugging tool that can be turned off and on by changing one macro definition. complain-asap.patch This patch implements a new command-line option --complain-asap=yes [default: no] which causes memcheck to complain immediately upon any fetch from memory that contains uninitialized bits. This is useful when tracking down the cause of "Conditional jump or move depends on uninitialised data"; however, be prepared for a blizzard of "false positive" warnings for holes in structures, various "don't care" conditions, etc. The corresponding error types are Load1, Load2, Load4, Load8, Load16 and they may be suppressed. ----- The patches compile on x86(i686) and x86_64, and should compile on other suppored platforms. Regression testing shows the same failures as vanilla valgrind-3.3.0 when run on Fedora 7 for i686. When run on svn 7358 there are additional failures for the new testcases because tracebacks have regressed under svn 7358. [An example is: ==7664== Syscall param write(buf) points to uninitialised byte(s) ==7664== at 0xC88353: __write_nocancel (in /lib/libc-2.6.so) ==7664== Address 0x300fa4 is on thread 1's stack Notice that the traceback omits the caller of __write_nocancel, which is present and available. This difference cascades in ways which matter to the test case.] Performance testing shows no discernible difference for the 6 patches being submitted against valgrind-3.3.0 or svn 7358. The two patches being held for further work have slight slowdowns: about 1% or less. Please consider the 6 submitted patches for merging into valgrind. -- John Reiser, [EMAIL PROTECTED] ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Valgrind-developers mailing list Valgrind-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-developers