From: Julian Seward Date: Wed, 6 Oct 2010 22:45:18 +0000 (+0000) Subject: The amd64-linux unwinder rejects stacks of smaller than 512 bytes as X-Git-Tag: svn/VALGRIND_3_6_0~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb3fbb46d7fcc623cafabed181bbf37f27fca224;p=thirdparty%2Fvalgrind.git The amd64-linux unwinder rejects stacks of smaller than 512 bytes as bogus, and produces essentially useless traces from them. With gcc-4.4 and later, some valid thread stacks really are smaller than this. Hence change the limit down to 256 bytes. Investigated by Evgeniy Stepanov, eugeni.stepanov@gmail.com. See bug 243270 comment 21. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11403 --- diff --git a/coregrind/m_stacktrace.c b/coregrind/m_stacktrace.c index 4896a9a1e1..489f6d71d8 100644 --- a/coregrind/m_stacktrace.c +++ b/coregrind/m_stacktrace.c @@ -264,7 +264,7 @@ UInt VG_(get_StackTrace_wrk) ( ThreadId tid_if_known, // On Darwin, this kicks in for pthread-related stack traces, so they're // only 1 entry long which is wrong. # if !defined(VGO_darwin) - if (fp_min + 512 >= fp_max) { + if (fp_min + 256 >= fp_max) { /* If the stack limits look bogus, don't poke around ... but don't bomb out either. */ if (sps) sps[0] = uregs.xsp;