commit: 52f4560cc44c91ea8253fb72a9d33f12c490d204
parent 1394b58c98283546139668e56c6d99937007d0b1
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Tue, 8 Apr 2025 00:01:51 +0200
add support for nanosleep(2)
Diffstat:
3 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/print_syscall.c b/print_syscall.c
@@ -13,6 +13,7 @@
#include <string.h> // memcpy
#include <sys/ptrace.h> // ptrace()
#include <sys/syscall.h> // SYS_*
+#include <time.h> // struct timespec
#include <unistd.h> // pid_t
extern pid_t child;
diff --git a/syscalls.sh b/syscalls.sh
@@ -12,34 +12,38 @@ do
"")
break
;;
- "size")
+ size)
fmt="${fmt}${fmt_sep}\"%zd\""
fmt_args="${fmt_args}, (size_t)args[$n]"
;;
- "off")
+ off)
fmt="${fmt}${fmt_sep}Pri_u"
fmt_args="${fmt_args}, (off_t)args[$n]"
;;
- "uint")
+ uint)
fmt="${fmt}${fmt_sep}Pri_u"
fmt_args="${fmt_args}, (uint64_t)args[$n]"
;;
- "int")
+ int)
fmt="${fmt}${fmt_sep}Pri_i"
fmt_args="${fmt_args}, (int64_t)args[$n]"
;;
- "oct")
+ oct)
fmt="${fmt}${fmt_sep}Pri_o"
fmt_args="${fmt_args}, (int64_t)args[$n]"
;;
- "hex"|"buf")
+ hex|buf|str)
fmt="${fmt}${fmt_sep}Pri_x"
fmt_args="${fmt_args}, (int64_t)args[$n]"
;;
- "path")
+ path)
fmt="${fmt}${fmt_sep}Pri_str"
fmt_args="${fmt_args}, read_str(args[$n], PATH_MAX)"
;;
+ timespec)
+ fmt="${fmt}${fmt_sep}\"{tv_sec=\"Pri_i\", tv_nsec=\"Pri_i\"}\""
+ fmt_args="${fmt_args}, (int64_t)(((const struct timespec *)args[$n])->tv_sec), (int64_t)(((const struct timespec *)args[$n])->tv_nsec)"
+ ;;
*)
echo "syscalls.sh: error: Unhandled type ${i}" >&2
exit 1
diff --git a/syscalls.txt b/syscalls.txt
@@ -45,3 +45,4 @@ unlink path
unlinkat int path
vfork
write int buf size
+nanosleep timespec timespec