summaryrefslogtreecommitdiff
path: root/gdb/linux-record.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/linux-record.c')
-rw-r--r--gdb/linux-record.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/linux-record.c b/gdb/linux-record.c
index 8832ef4ee51..dbd8f14a79a 100644
--- a/gdb/linux-record.c
+++ b/gdb/linux-record.c
@@ -272,13 +272,31 @@ record_linux_system_call (enum gdb_syscall syscall,
case gdb_sys_write:
case gdb_sys_open:
case gdb_sys_close:
+ break;
+
case gdb_sys_waitpid:
+ regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
+ if (tmpulongest)
+ if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
+ tdep->size_int))
+ return -1;
+ break;
+
case gdb_sys_creat:
case gdb_sys_link:
case gdb_sys_unlink:
case gdb_sys_execve:
case gdb_sys_chdir:
+ break;
+
case gdb_sys_time:
+ regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
+ if (tmpulongest)
+ if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
+ tdep->size_time_t))
+ return -1;
+ break;
+
case gdb_sys_mknod:
case gdb_sys_chmod:
case gdb_sys_lchown16:
@@ -330,7 +348,12 @@ record_linux_system_call (enum gdb_syscall syscall,
case gdb_sys_mkdir:
case gdb_sys_rmdir:
case gdb_sys_dup:
+ break;
+
case gdb_sys_pipe:
+ 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_times: