diff options
author | Marcin KoĆcielnicki <koriakin@0x04.net> | 2015-10-30 15:51:59 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-10-30 15:51:59 +0000 |
commit | b80d067ff0a7d2fcca3f8c01abf4b7201e71b8f0 (patch) | |
tree | 2cdd5da8bfe5f9dfb9786463d33972d30b351d17 /gdb/linux-record.c | |
parent | 933c5a623f247c63b642988a2984f5ce9b558d27 (diff) |
gdb/linux-record: Support time, waitpid, pipe syscalls
gdb/ChangeLog:
* aarch64-linux-tdep.c (aarch64_linux_init_abi): Add size_time_t.
* amd64-linux-tdep.c (amd64_linux_init_abi): Add size_time_t.
(amd64_x32_linux_init_abi): Add size_time_t.
* arm-linux-tdep.c (arm_linux_init_abi): Add size_time_t.
* i386-linux-tdep.c (i386_linux_init_abi): Add size_time_t.
* linux-record.c (record_linux_system_call): Add time, waitpid, pipe
handling.
* linux-record.h (struct linux_record_tdep): Add size_time_t.
* ppc-linux-tdep.c (ppc_init_linux_record_tdep): Add size_time_t.
Diffstat (limited to 'gdb/linux-record.c')
-rw-r--r-- | gdb/linux-record.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/linux-record.c b/gdb/linux-record.c index 8832ef4ee5..dbd8f14a79 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: |