|
From: <sv...@va...> - 2010-10-06 22:45:31
|
Author: sewardj
Date: 2010-10-06 23:45:18 +0100 (Wed, 06 Oct 2010)
New Revision: 11403
Log:
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, eug...@gm....
See bug 243270 comment 21.
Modified:
trunk/coregrind/m_stacktrace.c
Modified: trunk/coregrind/m_stacktrace.c
===================================================================
--- trunk/coregrind/m_stacktrace.c 2010-10-06 22:07:06 UTC (rev 11402)
+++ trunk/coregrind/m_stacktrace.c 2010-10-06 22:45:18 UTC (rev 11403)
@@ -264,7 +264,7 @@
// 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;
|