]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix Bug 397424 - glibc 2.27 and gdb_server tests
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Sun, 2 Sep 2018 12:19:57 +0000 (14:19 +0200)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Sun, 2 Sep 2018 12:22:43 +0000 (14:22 +0200)
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

NEWS
gdbserver_tests/filter_gdb

diff --git a/NEWS b/NEWS
index bd3c61d3e615b4f8c3a4e1002efe212d86560e90..982e3ec82946b4de6550236a2e286bfb60b12eb1 100644 (file)
--- 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
index ed78cfe37a85859d55e131eee7826081c48051e8..662028f5f09214e0553b29bb044bf809ffbe2e9d 100755 (executable)
@@ -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 <t>)
+#              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'                                                              \