mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 01:53:38 +08:00
[gdb/tdep] Handle syscall clock_gettime64 for arm-linux
When running test-case gdb.reverse/time-reverse.exp on arm-linux, I run into: ... (gdb) continue^M Continuing.^M Process record and replay target doesn't support syscall number 403^M Process record does not support instruction 0xdf00 at address 0xf7ebf774.^M Process record: failed to record execution log.^M ^M Program stopped.^M 0xf7ebf774 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6^M (gdb) FAIL: $exp: mode=c: continue to breakpoint: marker2 ... Syscall number 403 stands for clock_gettime64 on arm-linux. Fix this by handling 403 in arm_canonicalize_syscall, and handling gdb_sys_clock_gettime64 elsewhere. Since i386_canonicalize_syscall is the identity function, enum value gdb_sys_clock_gettime64 gets a value to match i386, which also happens to be 403. Tested on arm-linux. Approved-By: Guinevere Larsen <guinevere@redhat.com> (record-full)
This commit is contained in:
parent
5cb0406bb6
commit
580f291cb8
@ -1646,6 +1646,7 @@ arm_canonicalize_syscall (int syscall)
|
||||
*/
|
||||
case 384: return gdb_sys_getrandom;
|
||||
case 397: return gdb_sys_statx;
|
||||
case 403: return gdb_sys_clock_gettime64;
|
||||
case 983041: /* ARM_breakpoint */ return gdb_sys_no_syscall;
|
||||
case 983042: /* ARM_cacheflush */ return gdb_sys_no_syscall;
|
||||
case 983043: /* ARM_usr26 */ return gdb_sys_no_syscall;
|
||||
|
@ -1820,6 +1820,12 @@ Do you want to stop the program?"),
|
||||
return -1;
|
||||
break;
|
||||
|
||||
case gdb_sys_clock_gettime64:
|
||||
/* Size of struct __timespec64 is 16. */
|
||||
if (record_mem_at_reg (regcache, tdep->arg2, 16))
|
||||
return -1;
|
||||
break;
|
||||
|
||||
case gdb_sys_clock_getres:
|
||||
if (record_mem_at_reg (regcache, tdep->arg2, tdep->size_timespec))
|
||||
return -1;
|
||||
|
@ -512,6 +512,7 @@ enum gdb_syscall {
|
||||
gdb_sys_inotify_init1 = 332,
|
||||
gdb_sys_getrandom = 355,
|
||||
gdb_sys_statx = 383,
|
||||
gdb_sys_clock_gettime64 = 403,
|
||||
gdb_sys_socket = 500,
|
||||
gdb_sys_connect = 501,
|
||||
gdb_sys_accept = 502,
|
||||
|
Loading…
Reference in New Issue
Block a user