binutils-gdb/gdb/syscalls/i386-linux.xml
Gabriel Krisman Bertazi e34879080d Implement catch syscall group
Implement support to add catchpoints for a group of related syscalls
using the syntax:

(gdb) catch syscall group:<group>
or
(gdb) catch syscall g:<group>

Several groups are predefined in the xml files for all architectures
supported by GDB over Linux.  They are based on the groups defined by
strace.

gdb/

	* xml-syscall.c (get_syscalls_by_group): New.
	(get_syscall_group_names): New.
	(struct syscall_group_desc): New structure to store group data.
	(struct syscalls_info): Include field to store the group list.
	(sysinfo_free_syscall_group_desc): New.
	(free_syscalls_info): Free group list.
	(syscall_group_create_syscall_group_desc): New.
	(syscall_group_add_syscall): New.
	(syscall_create_syscall_desc): Add syscall to its groups.
	(syscall_start_syscall): Load group attribute.
	(syscall_group_get_group_by_name): New.
	(xml_list_syscalls_by_group): New.
	(xml_list_of_groups): New.
	* xml-syscall.h (get_syscalls_by_group): Export function
	to retrieve a list of syscalls filtered by the group name.
	(get_syscall_group_names): Export function to retrieve the list
	of syscall groups.
	* break-catch-syscall.c (catch_syscall_split_args): Verify if
	argument is a syscall group and expand it to a list of syscalls
	when creating catchpoints.
	(catch_syscall_completer): Add word completion for system call
	groups.
	* configure.ac: Include dependency for xsltproc when building
	in maintainer-mode.
	* break-catch-syscall.c (_initialize_breakpoint): Update catch
	syscall command documentation.
	* NEWS: Include section about catching groups of syscalls.
	* configure: Regenerate.
	* data-directory/Makefile.in: Generate syscall xml when building
	in maintainer mode.
	* syscalls/gdb-syscalls.dtd: Include group attribute to the
	syscall element.
	* syscalls/apply-defaults.xsl: New.
	* syscalls/linux-defaults.xml.in: New.
	* syscalls/aarch64-linux.xml: Rename to aarch64-linux.xml.in.
	* syscalls/amd64-linux.xml: Rename to amd64-linux.xml.in.
	* syscalls/arm-linux.xml: Rename to arm-linux.xml.in.
	* syscalls/bfin-linux.xml: Rename to bfin-linux.xml.in.
	* syscalls/i386-linux.xml: Rename to i386-linux.xml.in.
	* syscalls/mips-n32-linux.xml: Rename to mips-n32-linux.xml.in.
	* syscalls/mips-n64-linux.xml: Rename to mips-n64-linux.xml.in.
	* syscalls/mips-o32-linux.xml: Rename to mips-o32-linux.xml.in.
	* syscalls/ppc-linux.xml: Rename to ppc-linux.xml.in.
	* syscalls/ppc64-linux.xml: Rename to ppc64-linux.xml.in.
	* syscalls/s390-linux.xml: Rename to s390-linux.xml.in.
	* syscalls/s390x-linux.xml: Rename to s390x-linux.xml.in.
	* syscalls/sparc-linux.xml: Rename to sparc-linux.xml.in.
	* syscalls/sparc64-linux.xml: Rename to sparc64-linux.xml.in.
	* syscalls/aarch64-linux.xml: Regenerate.
	* syscalls/amd64-linux.xml: Regenerate.
	* syscalls/arm-linux.xml: Regenerate.
	* syscalls/i386-linux.xml: Regenerate.
	* syscalls/mips-n32-linux.xml: Regenerate.
	* syscalls/mips-n64-linux.xml: Regenerate.
	* syscalls/mips-o32-linux.xml: Regenerate.
	* syscalls/ppc-linux.xml: Regenerate.
	* syscalls/ppc64-linux.xml: Regenerate.
	* syscalls/s390-linux.xml: Regenerate.
	* syscalls/s390x-linux.xml: Regenerate.
	* syscalls/sparc-linux.xml: Regenerate.
	* syscalls/sparc64-linux.xml: Regenerate.

gdb/testsuite/

	* gdb.base/catch-syscall.exp (do_syscall_tests): Add call
	to test_catch_syscall_group.
	(test_catch_syscall_group): New.

gdb/doc/

	* gdb.texinfo (Set Catchpoints): Add 'group' argument to catch
	syscall.
2016-07-23 18:38:24 -03:00

338 lines
17 KiB
XML

<?xml version="1.0"?>
<!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- This file was generated using the following file:
/usr/src/linux/arch/x86/include/asm/unistd_32.h
The file mentioned above belongs to the Linux Kernel. -->
<syscalls_info>
<syscall name="restart_syscall" number="0"/>
<syscall name="exit" number="1" groups="process"/>
<syscall name="fork" number="2" groups="process"/>
<syscall name="read" number="3" groups="descriptor"/>
<syscall name="write" number="4" groups="descriptor"/>
<syscall name="open" number="5" groups="descriptor,file"/>
<syscall name="close" number="6" groups="descriptor"/>
<syscall name="waitpid" number="7" groups="process"/>
<syscall name="creat" number="8" groups="descriptor,file"/>
<syscall name="link" number="9" groups="file"/>
<syscall name="unlink" number="10" groups="file"/>
<syscall name="execve" number="11" groups="file,process"/>
<syscall name="chdir" number="12" groups="file"/>
<syscall name="time" number="13"/>
<syscall name="mknod" number="14" groups="file"/>
<syscall name="chmod" number="15" groups="file"/>
<syscall name="lchown" number="16" groups="file"/>
<syscall name="break" number="17" groups="memory"/>
<syscall name="oldstat" number="18" groups="file"/>
<syscall name="lseek" number="19" groups="descriptor"/>
<syscall name="getpid" number="20"/>
<syscall name="mount" number="21" groups="file"/>
<syscall name="umount" number="22" groups="file"/>
<syscall name="setuid" number="23"/>
<syscall name="getuid" number="24"/>
<syscall name="stime" number="25"/>
<syscall name="ptrace" number="26"/>
<syscall name="alarm" number="27"/>
<syscall name="oldfstat" number="28" groups="descriptor"/>
<syscall name="pause" number="29" groups="signal"/>
<syscall name="utime" number="30" groups="file"/>
<syscall name="stty" number="31"/>
<syscall name="gtty" number="32"/>
<syscall name="access" number="33" groups="file"/>
<syscall name="nice" number="34"/>
<syscall name="ftime" number="35"/>
<syscall name="sync" number="36"/>
<syscall name="kill" number="37" groups="signal"/>
<syscall name="rename" number="38" groups="file"/>
<syscall name="mkdir" number="39" groups="file"/>
<syscall name="rmdir" number="40" groups="file"/>
<syscall name="dup" number="41" groups="descriptor"/>
<syscall name="pipe" number="42" groups="descriptor"/>
<syscall name="times" number="43"/>
<syscall name="prof" number="44"/>
<syscall name="brk" number="45" groups="memory"/>
<syscall name="setgid" number="46"/>
<syscall name="getgid" number="47"/>
<syscall name="signal" number="48" groups="signal"/>
<syscall name="geteuid" number="49"/>
<syscall name="getegid" number="50"/>
<syscall name="acct" number="51" groups="file"/>
<syscall name="umount2" number="52" groups="file"/>
<syscall name="lock" number="53"/>
<syscall name="ioctl" number="54" groups="descriptor"/>
<syscall name="fcntl" number="55" groups="descriptor"/>
<syscall name="mpx" number="56"/>
<syscall name="setpgid" number="57"/>
<syscall name="ulimit" number="58"/>
<syscall name="oldolduname" number="59"/>
<syscall name="umask" number="60"/>
<syscall name="chroot" number="61" groups="file"/>
<syscall name="ustat" number="62"/>
<syscall name="dup2" number="63" groups="descriptor"/>
<syscall name="getppid" number="64"/>
<syscall name="getpgrp" number="65"/>
<syscall name="setsid" number="66"/>
<syscall name="sigaction" number="67" groups="signal"/>
<syscall name="sgetmask" number="68" groups="signal"/>
<syscall name="ssetmask" number="69" groups="signal"/>
<syscall name="setreuid" number="70"/>
<syscall name="setregid" number="71"/>
<syscall name="sigsuspend" number="72" groups="signal"/>
<syscall name="sigpending" number="73" groups="signal"/>
<syscall name="sethostname" number="74"/>
<syscall name="setrlimit" number="75"/>
<syscall name="getrlimit" number="76"/>
<syscall name="getrusage" number="77"/>
<syscall name="gettimeofday" number="78"/>
<syscall name="settimeofday" number="79"/>
<syscall name="getgroups" number="80"/>
<syscall name="setgroups" number="81"/>
<syscall name="select" number="82" groups="descriptor"/>
<syscall name="symlink" number="83" groups="file"/>
<syscall name="oldlstat" number="84" groups="file"/>
<syscall name="readlink" number="85" groups="file"/>
<syscall name="uselib" number="86" groups="file"/>
<syscall name="swapon" number="87" groups="file"/>
<syscall name="reboot" number="88"/>
<syscall name="readdir" number="89" groups="descriptor"/>
<syscall name="mmap" number="90" groups="descriptor,memory"/>
<syscall name="munmap" number="91" groups="memory"/>
<syscall name="truncate" number="92" groups="file"/>
<syscall name="ftruncate" number="93" groups="descriptor"/>
<syscall name="fchmod" number="94" groups="descriptor"/>
<syscall name="fchown" number="95" groups="descriptor"/>
<syscall name="getpriority" number="96"/>
<syscall name="setpriority" number="97"/>
<syscall name="profil" number="98"/>
<syscall name="statfs" number="99" groups="file"/>
<syscall name="fstatfs" number="100" groups="descriptor"/>
<syscall name="ioperm" number="101"/>
<syscall name="socketcall" number="102" groups="descriptor"/>
<syscall name="syslog" number="103"/>
<syscall name="setitimer" number="104"/>
<syscall name="getitimer" number="105"/>
<syscall name="stat" number="106" groups="file"/>
<syscall name="lstat" number="107" groups="file"/>
<syscall name="fstat" number="108" groups="descriptor"/>
<syscall name="olduname" number="109"/>
<syscall name="iopl" number="110"/>
<syscall name="vhangup" number="111"/>
<syscall name="idle" number="112"/>
<syscall name="vm86old" number="113"/>
<syscall name="wait4" number="114" groups="process"/>
<syscall name="swapoff" number="115" groups="file"/>
<syscall name="sysinfo" number="116"/>
<syscall name="ipc" number="117" groups="ipc"/>
<syscall name="fsync" number="118" groups="descriptor"/>
<syscall name="sigreturn" number="119" groups="signal"/>
<syscall name="clone" number="120" groups="process"/>
<syscall name="setdomainname" number="121"/>
<syscall name="uname" number="122"/>
<syscall name="modify_ldt" number="123"/>
<syscall name="adjtimex" number="124"/>
<syscall name="mprotect" number="125" groups="memory"/>
<syscall name="sigprocmask" number="126" groups="signal"/>
<syscall name="create_module" number="127"/>
<syscall name="init_module" number="128"/>
<syscall name="delete_module" number="129"/>
<syscall name="get_kernel_syms" number="130"/>
<syscall name="quotactl" number="131" groups="file"/>
<syscall name="getpgid" number="132"/>
<syscall name="fchdir" number="133" groups="descriptor"/>
<syscall name="bdflush" number="134"/>
<syscall name="sysfs" number="135"/>
<syscall name="personality" number="136"/>
<syscall name="afs_syscall" number="137"/>
<syscall name="setfsuid" number="138"/>
<syscall name="setfsgid" number="139"/>
<syscall name="_llseek" number="140" groups="descriptor"/>
<syscall name="getdents" number="141" groups="descriptor"/>
<syscall name="_newselect" number="142" groups="descriptor"/>
<syscall name="flock" number="143" groups="descriptor"/>
<syscall name="msync" number="144" groups="memory"/>
<syscall name="readv" number="145" groups="descriptor"/>
<syscall name="writev" number="146" groups="descriptor"/>
<syscall name="getsid" number="147"/>
<syscall name="fdatasync" number="148" groups="descriptor"/>
<syscall name="_sysctl" number="149"/>
<syscall name="mlock" number="150" groups="memory"/>
<syscall name="munlock" number="151" groups="memory"/>
<syscall name="mlockall" number="152" groups="memory"/>
<syscall name="munlockall" number="153" groups="memory"/>
<syscall name="sched_setparam" number="154"/>
<syscall name="sched_getparam" number="155"/>
<syscall name="sched_setscheduler" number="156"/>
<syscall name="sched_getscheduler" number="157"/>
<syscall name="sched_yield" number="158"/>
<syscall name="sched_get_priority_max" number="159"/>
<syscall name="sched_get_priority_min" number="160"/>
<syscall name="sched_rr_get_interval" number="161"/>
<syscall name="nanosleep" number="162"/>
<syscall name="mremap" number="163" groups="memory"/>
<syscall name="setresuid" number="164"/>
<syscall name="getresuid" number="165"/>
<syscall name="vm86" number="166"/>
<syscall name="query_module" number="167"/>
<syscall name="poll" number="168" groups="descriptor"/>
<syscall name="nfsservctl" number="169"/>
<syscall name="setresgid" number="170"/>
<syscall name="getresgid" number="171"/>
<syscall name="prctl" number="172"/>
<syscall name="rt_sigreturn" number="173" groups="signal"/>
<syscall name="rt_sigaction" number="174" groups="signal"/>
<syscall name="rt_sigprocmask" number="175" groups="signal"/>
<syscall name="rt_sigpending" number="176" groups="signal"/>
<syscall name="rt_sigtimedwait" number="177" groups="signal"/>
<syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
<syscall name="rt_sigsuspend" number="179" groups="signal"/>
<syscall name="pread64" number="180" groups="descriptor"/>
<syscall name="pwrite64" number="181" groups="descriptor"/>
<syscall name="chown" number="182" groups="file"/>
<syscall name="getcwd" number="183" groups="file"/>
<syscall name="capget" number="184"/>
<syscall name="capset" number="185"/>
<syscall name="sigaltstack" number="186" groups="signal"/>
<syscall name="sendfile" number="187" groups="descriptor,network"/>
<syscall name="getpmsg" number="188"/>
<syscall name="putpmsg" number="189"/>
<syscall name="vfork" number="190" groups="process"/>
<syscall name="ugetrlimit" number="191"/>
<syscall name="mmap2" number="192" groups="descriptor,memory"/>
<syscall name="truncate64" number="193" groups="file"/>
<syscall name="ftruncate64" number="194" groups="descriptor"/>
<syscall name="stat64" number="195" groups="file"/>
<syscall name="lstat64" number="196" groups="file"/>
<syscall name="fstat64" number="197" groups="descriptor"/>
<syscall name="lchown32" number="198" groups="file"/>
<syscall name="getuid32" number="199"/>
<syscall name="getgid32" number="200"/>
<syscall name="geteuid32" number="201"/>
<syscall name="getegid32" number="202"/>
<syscall name="setreuid32" number="203"/>
<syscall name="setregid32" number="204"/>
<syscall name="getgroups32" number="205"/>
<syscall name="setgroups32" number="206"/>
<syscall name="fchown32" number="207" groups="descriptor"/>
<syscall name="setresuid32" number="208"/>
<syscall name="getresuid32" number="209"/>
<syscall name="setresgid32" number="210"/>
<syscall name="getresgid32" number="211"/>
<syscall name="chown32" number="212" groups="file"/>
<syscall name="setuid32" number="213"/>
<syscall name="setgid32" number="214"/>
<syscall name="setfsuid32" number="215"/>
<syscall name="setfsgid32" number="216"/>
<syscall name="pivot_root" number="217" groups="file"/>
<syscall name="mincore" number="218" groups="memory"/>
<syscall name="madvise" number="219" groups="memory"/>
<syscall name="madvise1" number="220"/>
<syscall name="getdents64" number="221" groups="descriptor"/>
<syscall name="fcntl64" number="222" groups="descriptor"/>
<syscall name="gettid" number="224"/>
<syscall name="readahead" number="225" groups="descriptor"/>
<syscall name="setxattr" number="226" groups="file"/>
<syscall name="lsetxattr" number="227" groups="file"/>
<syscall name="fsetxattr" number="228" groups="descriptor"/>
<syscall name="getxattr" number="229" groups="file"/>
<syscall name="lgetxattr" number="230" groups="file"/>
<syscall name="fgetxattr" number="231" groups="descriptor"/>
<syscall name="listxattr" number="232" groups="file"/>
<syscall name="llistxattr" number="233" groups="file"/>
<syscall name="flistxattr" number="234" groups="descriptor"/>
<syscall name="removexattr" number="235" groups="file"/>
<syscall name="lremovexattr" number="236" groups="file"/>
<syscall name="fremovexattr" number="237" groups="descriptor"/>
<syscall name="tkill" number="238" groups="signal"/>
<syscall name="sendfile64" number="239" groups="descriptor,network"/>
<syscall name="futex" number="240"/>
<syscall name="sched_setaffinity" number="241"/>
<syscall name="sched_getaffinity" number="242"/>
<syscall name="set_thread_area" number="243"/>
<syscall name="get_thread_area" number="244"/>
<syscall name="io_setup" number="245"/>
<syscall name="io_destroy" number="246"/>
<syscall name="io_getevents" number="247"/>
<syscall name="io_submit" number="248"/>
<syscall name="io_cancel" number="249"/>
<syscall name="fadvise64" number="250" groups="descriptor"/>
<syscall name="exit_group" number="252" groups="process"/>
<syscall name="lookup_dcookie" number="253"/>
<syscall name="epoll_create" number="254" groups="descriptor"/>
<syscall name="epoll_ctl" number="255" groups="descriptor"/>
<syscall name="epoll_wait" number="256" groups="descriptor"/>
<syscall name="remap_file_pages" number="257" groups="memory"/>
<syscall name="set_tid_address" number="258"/>
<syscall name="timer_create" number="259"/>
<syscall name="timer_settime" number="260"/>
<syscall name="timer_gettime" number="261"/>
<syscall name="timer_getoverrun" number="262"/>
<syscall name="timer_delete" number="263"/>
<syscall name="clock_settime" number="264"/>
<syscall name="clock_gettime" number="265"/>
<syscall name="clock_getres" number="266"/>
<syscall name="clock_nanosleep" number="267"/>
<syscall name="statfs64" number="268" groups="file"/>
<syscall name="fstatfs64" number="269" groups="descriptor"/>
<syscall name="tgkill" number="270" groups="signal"/>
<syscall name="utimes" number="271" groups="file"/>
<syscall name="fadvise64_64" number="272" groups="descriptor"/>
<syscall name="vserver" number="273"/>
<syscall name="mbind" number="274" groups="memory"/>
<syscall name="get_mempolicy" number="275" groups="memory"/>
<syscall name="set_mempolicy" number="276" groups="memory"/>
<syscall name="mq_open" number="277"/>
<syscall name="mq_unlink" number="278"/>
<syscall name="mq_timedsend" number="279"/>
<syscall name="mq_timedreceive" number="280"/>
<syscall name="mq_notify" number="281"/>
<syscall name="mq_getsetattr" number="282"/>
<syscall name="kexec_load" number="283"/>
<syscall name="waitid" number="284" groups="process"/>
<syscall name="add_key" number="286"/>
<syscall name="request_key" number="287"/>
<syscall name="keyctl" number="288"/>
<syscall name="ioprio_set" number="289"/>
<syscall name="ioprio_get" number="290"/>
<syscall name="inotify_init" number="291" groups="descriptor"/>
<syscall name="inotify_add_watch" number="292" groups="descriptor"/>
<syscall name="inotify_rm_watch" number="293" groups="descriptor"/>
<syscall name="migrate_pages" number="294" groups="memory"/>
<syscall name="openat" number="295" groups="descriptor,file"/>
<syscall name="mkdirat" number="296" groups="descriptor,file"/>
<syscall name="mknodat" number="297" groups="descriptor,file"/>
<syscall name="fchownat" number="298" groups="descriptor,file"/>
<syscall name="futimesat" number="299" groups="descriptor,file"/>
<syscall name="fstatat64" number="300" groups="descriptor,file"/>
<syscall name="unlinkat" number="301" groups="descriptor,file"/>
<syscall name="renameat" number="302" groups="descriptor,file"/>
<syscall name="linkat" number="303" groups="descriptor,file"/>
<syscall name="symlinkat" number="304" groups="descriptor,file"/>
<syscall name="readlinkat" number="305" groups="descriptor,file"/>
<syscall name="fchmodat" number="306" groups="descriptor,file"/>
<syscall name="faccessat" number="307" groups="descriptor,file"/>
<syscall name="pselect6" number="308" groups="descriptor"/>
<syscall name="ppoll" number="309" groups="descriptor"/>
<syscall name="unshare" number="310" groups="process"/>
<syscall name="set_robust_list" number="311"/>
<syscall name="get_robust_list" number="312"/>
<syscall name="splice" number="313" groups="descriptor"/>
<syscall name="sync_file_range" number="314" groups="descriptor"/>
<syscall name="tee" number="315" groups="descriptor"/>
<syscall name="vmsplice" number="316" groups="descriptor"/>
<syscall name="move_pages" number="317" groups="memory"/>
<syscall name="getcpu" number="318"/>
<syscall name="epoll_pwait" number="319" groups="descriptor"/>
<syscall name="utimensat" number="320" groups="descriptor,file"/>
<syscall name="signalfd" number="321" groups="descriptor,signal"/>
<syscall name="timerfd_create" number="322" groups="descriptor"/>
<syscall name="eventfd" number="323" groups="descriptor"/>
<syscall name="fallocate" number="324" groups="descriptor"/>
<syscall name="timerfd_settime" number="325" groups="descriptor"/>
</syscalls_info>