From: Philippe Waroquiers Date: Wed, 13 Mar 2013 22:03:31 +0000 (+0000) Subject: Document that user level client stack switches might cause crashes X-Git-Tag: svn/VALGRIND_3_9_0~354 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52b0e470c340f82fdfa8ef813ace90c75d8e62b0;p=thirdparty%2Fvalgrind.git Document that user level client stack switches might cause crashes and that these crahses might be avoided using VALGRIND_STACK_REGISTER See bug 316613 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13327 --- diff --git a/docs/xml/manual-core-adv.xml b/docs/xml/manual-core-adv.xml index 00376a1d5b..73bdb5a46b 100644 --- a/docs/xml/manual-core-adv.xml +++ b/docs/xml/manual-core-adv.xml @@ -247,11 +247,12 @@ tool-specific macros). between start and end is a unique stack. Returns a stack identifier that can be used with other VALGRIND_STACK_* calls. - Valgrind will use this information to determine if a change to - the stack pointer is an item pushed onto the stack or a change over - to a new stack. Use this if you're using a user-level thread package - and are noticing spurious errors from Valgrind about uninitialized - memory reads. + Valgrind will use this information to determine if a change + to the stack pointer is an item pushed onto the stack or a change + over to a new stack. Use this if you're using a user-level thread + package and are noticing crashes in stack trace recording or + spurious errors from Valgrind about uninitialized memory + reads. Warning: Unfortunately, this client request is unreliable and best avoided. diff --git a/docs/xml/manual-core.xml b/docs/xml/manual-core.xml index a60c3a43a6..e489fd6f05 100644 --- a/docs/xml/manual-core.xml +++ b/docs/xml/manual-core.xml @@ -2609,13 +2609,16 @@ shipped. Warning: client switching stacks? Valgrind spotted such a large change in the stack pointer - that it guesses the client is switching to - a different stack. At this point it makes a kludgey guess where the - base of the new stack is, and sets memory permissions accordingly. - You may get many bogus error messages following this, if Valgrind - guesses wrong. At the moment "large change" is defined as a change - of more that 2000000 in the value of the - stack pointer register. + that it guesses the client is switching to a different stack. At + this point it makes a kludgey guess where the base of the new + stack is, and sets memory permissions accordingly. At the moment + "large change" is defined as a change of more that 2000000 in the + value of the stack pointer register. If Valgrind guesses wrong, + you may get many bogus error messages following this and/or have + crashes in the stack trace recording code. You might avoid these + problems by informing Valgrind about the stack bounds using + VALGRIND_STACK_REGISTER client request. +