From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22369 invoked by alias); 15 May 2016 20:32:29 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 22288 invoked by uid 89); 15 May 2016 20:32:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.2 spammy=H*F:D*be, UD:be, Pedro, H*Ad:D*be X-HELO: layla.krisman.be Received: from layla.krisman.be (HELO layla.krisman.be) (176.31.208.35) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 15 May 2016 20:32:18 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (envelope-from ) id 1b22HK-0002hb-1s; Sun, 15 May 2016 22:04:42 +0200 From: Gabriel Krisman Bertazi To: gdb-patches@sourceware.org Cc: palves@redhat.com, sergiodj@redhat.com, dje@google.com, Gabriel Krisman Bertazi Subject: [PATCH v5 0/5] Catch syscall groups Date: Sun, 15 May 2016 20:32:00 -0000 Message-Id: <1463344320-6439-1-git-send-email-gabriel@krisman.be> X-IsSubscribed: yes X-SW-Source: 2016-05/txt/msg00240.txt.bz2 Hi, Last year, I submitted a proposal to include support to catch groups of related syscalls in GDB. My goal was to allow users to just write "catch syscall group:network" to catch all network related syscalls, instead of listing every single one of them in the command line. This idea came after what is done by the "strace -e trace=" kind of expressions, and a suggestion made by Tom Tromey in the Sourceware bugzilla. Anyway, the patch iterated a little in this list and got positive feedback and great suggestions from Sergio, Pedro and Doug. Eventually, I got very busy with college/work stuff, and had to put this on hold.. until now. I'm looking to put more effort on this to get it upstream anytime soon. There are just a few differences from the last iteration I submitted. In summary, I followed Doug's suggestion and made the XML generation happen only when building in maintainer's mode. On that mode, we invoke xsltproc to transform the xml.in files to .xml files that get read by GDB. I also plan to keep the generated xmls in the repository, such that when building outside of maintainers mode, we don't depend on xltproc. As usual, the patches don't iclude the generated files. Therefore, to test it, you need to use maintainer mode at least once to get the xml files generated. When I push the patch set upstream, I'll ammend the commit to include generated files, such that it doesn't break bisectable builds. If anyone is feeling lazy and just want to see things working, I have a version that includes the generated files at my git: git clone git://git.krisman.be/binutils-gdb.git -b syscall-group Thanks, Gabriel Krisman Bertazi (5): Implemement support for groups of syscalls in the xml-syscall interface. Add support to catch groups of syscalls. Add tests for catching groups of syscalls on supported architectures. Include group information to xml syscall files. Update documentation on catching a group of related syscalls. gdb/NEWS | 5 + gdb/break-catch-syscall.c | 104 +++++++-- gdb/configure.ac | 10 + gdb/data-directory/Makefile.in | 4 + gdb/doc/gdb.texinfo | 28 ++- .../{aarch64-linux.xml => aarch64-linux.xml.in} | 0 .../{amd64-linux.xml => amd64-linux.xml.in} | 0 gdb/syscalls/apply-defaults.xsl | 27 +++ gdb/syscalls/{arm-linux.xml => arm-linux.xml.in} | 0 gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} | 0 gdb/syscalls/gdb-syscalls.dtd | 3 +- gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} | 0 gdb/syscalls/linux-defaults.xml.in | 243 +++++++++++++++++++++ .../{mips-n32-linux.xml => mips-n32-linux.xml.in} | 0 .../{mips-n64-linux.xml => mips-n64-linux.xml.in} | 0 .../{mips-o32-linux.xml => mips-o32-linux.xml.in} | 0 gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in} | 0 .../{ppc64-linux.xml => ppc64-linux.xml.in} | 0 gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} | 0 .../{s390x-linux.xml => s390x-linux.xml.in} | 0 .../{sparc-linux.xml => sparc-linux.xml.in} | 0 .../{sparc64-linux.xml => sparc64-linux.xml.in} | 0 gdb/testsuite/gdb.base/catch-syscall.exp | 39 ++++ gdb/xml-syscall.c | 232 +++++++++++++++++++- gdb/xml-syscall.h | 16 ++ 25 files changed, 693 insertions(+), 18 deletions(-) rename gdb/syscalls/{aarch64-linux.xml => aarch64-linux.xml.in} (100%) rename gdb/syscalls/{amd64-linux.xml => amd64-linux.xml.in} (100%) create mode 100644 gdb/syscalls/apply-defaults.xsl rename gdb/syscalls/{arm-linux.xml => arm-linux.xml.in} (100%) rename gdb/syscalls/{bfin-linux.xml => bfin-linux.xml.in} (100%) rename gdb/syscalls/{i386-linux.xml => i386-linux.xml.in} (100%) create mode 100644 gdb/syscalls/linux-defaults.xml.in rename gdb/syscalls/{mips-n32-linux.xml => mips-n32-linux.xml.in} (100%) rename gdb/syscalls/{mips-n64-linux.xml => mips-n64-linux.xml.in} (100%) rename gdb/syscalls/{mips-o32-linux.xml => mips-o32-linux.xml.in} (100%) rename gdb/syscalls/{ppc-linux.xml => ppc-linux.xml.in} (100%) rename gdb/syscalls/{ppc64-linux.xml => ppc64-linux.xml.in} (100%) rename gdb/syscalls/{s390-linux.xml => s390-linux.xml.in} (100%) rename gdb/syscalls/{s390x-linux.xml => s390x-linux.xml.in} (100%) rename gdb/syscalls/{sparc-linux.xml => sparc-linux.xml.in} (100%) rename gdb/syscalls/{sparc64-linux.xml => sparc64-linux.xml.in} (100%) -- 2.4.3