From: Philippe Waroquiers Date: Sun, 2 Sep 2018 12:19:57 +0000 (+0200) Subject: Fix Bug 397424 - glibc 2.27 and gdb_server tests X-Git-Tag: VALGRIND_3_14_0~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0822ebca8f964f1685d667e0c21fea926633bb92;p=thirdparty%2Fvalgrind.git Fix Bug 397424 - glibc 2.27 and gdb_server tests commit a214595daed7830a091dcd0f52c5b8073bfd04dd already handled some of the new differences created by glib 2.27. This commit should filter the new way gdb shows a select syscall with glibc 2.27 --- diff --git a/NEWS b/NEWS index bd3c61d3e6..982e3ec829 100644 --- a/NEWS +++ b/NEWS @@ -143,6 +143,7 @@ where XXXXXX is the bug number as listed below. 396475 valgrind OS-X build: config.h not found (out-of-tree macOS builds) 396887 arch_prctl should return EINVAL on unknown option 397012 glibc ld.so uses arch_prctl on i386 +397424 glibc 2.27 and gdb_server tests n-i-bz Fix missing workq_ops operations (macOS) n-i-bz fix bug in strspn replacement diff --git a/gdbserver_tests/filter_gdb b/gdbserver_tests/filter_gdb index ed78cfe37a..662028f5f0 100755 --- a/gdbserver_tests/filter_gdb +++ b/gdbserver_tests/filter_gdb @@ -41,6 +41,14 @@ sed -e '/^\ \ \ \ \.\.\.$/d' | # (on 32 bits, we have an int_80, on 64 bits, directly select) # and yet another (gdb 7.0 way) to get a system call # and yet another (gdb 7.0 arm way) to get a system call +# +# Additions of 4 expressions to cover glibc 2.27 way to do a select, such as +# * 1 Thread 5548 (tid 1 VgTs_WaitSys) 0x0000000004f6203f in __GI___select ( +# nfds=0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x30a0e0 ) +# at ../sysdeps/unix/sysv/linux/select.c:41 +# If select.c sources are present, we can also get a line containing: +# return SYSCALL_CANCEL.... +# # and cleanup some lines for a system call (on ubuntu 10 64 bits) # (pay attention : there are tab characters there in) # + yet another way to get a select system call @@ -98,6 +106,10 @@ sed -e '/Remote debugging using/,/vgdb launched process attached/d' -e '/^ from \/lib\/ld-linux.so.*$/d' \ -e 's/\(0x........\) in ?? () from \/lib.*$/\1 in syscall .../' \ -e 's/\(0x........\) in ?? ()$/\1 in syscall .../' \ + -e 's/in __select .*/in syscall .../' \ + -e '/exceptfds/d' \ + -e '/sysv\/linux\/select\.c/d' \ + -e '/return SYSCALL_CANCEL /d' \ -e 's/in \(.__\)\{0,1\}select () from \/.*$/in syscall .../' \ -e '/^ from \/lib\/libc.so.*$/d' \ -e '/^ from \/lib64\/libc.so.*$/d' \