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
This commit is contained in:
Julian Seward
2010-10-06 22:45:18 +00:00
parent 797fe272f2
commit cb3fbb46d7

View File

@@ -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;