From 72aded8673d6cb2d0e33696e010a778e9bbfa817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Ko=C5=9Bcielnicki?= Date: Fri, 30 Oct 2015 15:51:58 +0000 Subject: gdb/linux-record: Fix readdir and getdents handling getdents buffer size is given in bytes, not dirent entries (which have variable size anyway). We don't need size_dirent and size_dirent64 for this reason. readdir, on the other hand, needs size of old_linux_dirent, which is a somewhat different structure. Accordingly, rename size_dirent to size_old_dirent. gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * amd64-linux-tdep.c (amd64_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. (amd64_x32_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * arm-linux-tdep.c (arm_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * i386-linux-tdep.c (i386_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * linux-record.c (record_linux_system_call): Fix handling of readdir and getdents{,64}. * linux-record.h (struct linux_record_tdep): Remove size_dirent{,64}, add size_old_dirent. * ppc-linux-tdep.c (ppc_init_linux_record_tdep): Remove size_dirent{,64}, add size_old_dirent. --- gdb/arm-linux-tdep.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'gdb/arm-linux-tdep.c') diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c index 88d818d..a820e74 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c @@ -1496,8 +1496,7 @@ arm_linux_init_abi (struct gdbarch_info info, arm_linux_record_tdep.size_old_gid_t = 2; arm_linux_record_tdep.size_old_uid_t = 2; arm_linux_record_tdep.size_fd_set = 128; - arm_linux_record_tdep.size_dirent = 268; - arm_linux_record_tdep.size_dirent64 = 276; + arm_linux_record_tdep.size_old_dirent = 268; arm_linux_record_tdep.size_statfs = 64; arm_linux_record_tdep.size_statfs64 = 84; arm_linux_record_tdep.size_sockaddr = 16; -- cgit v1.1