aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2016-02-19 15:51:03 +0000
committerYao Qi <yao.qi@linaro.org>2016-02-29 16:44:50 +0000
commit253b4d3a09e9edbb72d21127fbc85934ab1b7c07 (patch)
tree0490c367193afb39f3dc77ec4f2609db287b1341
parent841fdfcdd9caa69f3ad7560a2806d421e23f598a (diff)
downloadbinutils-253b4d3a09e9edbb72d21127fbc85934ab1b7c07.zip
binutils-253b4d3a09e9edbb72d21127fbc85934ab1b7c07.tar.gz
binutils-253b4d3a09e9edbb72d21127fbc85934ab1b7c07.tar.bz2
Support more syscalls in linux-record: pipe2 epoll_create1 eventfd2 fallocate dup3 and inotify_init1
This patch adds more syscalls in linux-record. gdb: 2016-02-29 Yao Qi <yao.qi@linaro.org> * linux-record.h (enum gdb_syscall) <gdb_sys_fallocate>: New. <gdb_sys_eventfd2, gdb_sys_epoll_create1, gdb_sys_dup3>: New. <gdb_sys_pipe2, gdb_sys_inotify_init1>: New. * linux-record.c (record_linux_system_call): Handle them.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/linux-record.c15
-rw-r--r--gdb/linux-record.h6
3 files changed, 28 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bc6a713..aa5bb97 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2016-02-29 Yao Qi <yao.qi@linaro.org>
+
+ * linux-record.h (enum gdb_syscall) <gdb_sys_fallocate>: New.
+ <gdb_sys_eventfd2, gdb_sys_epoll_create1, gdb_sys_dup3>: New.
+ <gdb_sys_pipe2, gdb_sys_inotify_init1>: New.
+ * linux-record.c (record_linux_system_call): Handle them.
+
2016-02-28 Iain Buclaw <ibuclaw@gdcproject.org>
* d-namespace.c (d_lookup_symbol_imports): Avoid recursive lookups from
diff --git a/gdb/linux-record.c b/gdb/linux-record.c
index 29e299d..a40845a 100644
--- a/gdb/linux-record.c
+++ b/gdb/linux-record.c
@@ -2302,6 +2302,21 @@ Do you want to stop the program?"),
}
break;
+ case gdb_sys_fallocate:
+ case gdb_sys_eventfd2:
+ case gdb_sys_epoll_create1:
+ case gdb_sys_dup3:
+ break;
+
+ case gdb_sys_pipe2:
+ regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
+ if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
+ tdep->size_int * 2))
+ break;
+
+ case gdb_sys_inotify_init1:
+ break;
+
default:
printf_unfiltered (_("Process record and replay target doesn't "
"support syscall number %d\n"), syscall);
diff --git a/gdb/linux-record.h b/gdb/linux-record.h
index ca6a117..b317ab1 100644
--- a/gdb/linux-record.h
+++ b/gdb/linux-record.h
@@ -504,6 +504,12 @@ enum gdb_syscall {
gdb_sys_move_pages = 317,
gdb_sys_getcpu = 318,
gdb_sys_epoll_pwait = 319,
+ gdb_sys_fallocate = 324,
+ gdb_sys_eventfd2 = 328,
+ gdb_sys_epoll_create1 = 329,
+ gdb_sys_dup3 = 330,
+ gdb_sys_pipe2 = 331,
+ gdb_sys_inotify_init1 = 332,
gdb_sys_socket = 500,
gdb_sys_connect = 501,
gdb_sys_accept = 502,