|
From: Matthias S. <zz...@ge...> - 2015-04-10 04:47:59
|
Hi! I analysed why the test memcheck/tests/threadname fails on amd64. See also https://bugs.kde.org/show_bug.cgi?id=345928 On amd64 it has this on stderr: ==32123== Thread 2: ==32123== Invalid write of size 1 ==32123== at 0x40083F: bad_things (threadname.c:16) ==32123== Address 0x53e71e2 is 0 bytes after a block of size 2 alloc'd ==32123== at 0x4C28BEF: malloc (vg_replace_malloc.c:299) ==32123== by 0x40082D: bad_things (threadname.c:15) ==32123== by 0x40094E: child_fn_0 (threadname.c:61) ==32123== by 0x4E3C203: start_thread (pthread_create.c:310) ==32123== I then enabled debug and added more printf-statements: The check "if (fp_min + 256 >= fp_max)" in coregrind/m_stacktrace.c:501 is triggered here. By changing it to "if (fp_min + 128 >= fp_max)" it can be fixed. I think amd64 is having problems here because some functions do not need additional local variables but can use the redzone, so the stackframes are small. Regards Matthias |