mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:48:10 +00:00
strace: Add support for printing the fourth syscall argument
This commit is contained in:
parent
beca73e0fd
commit
8c562a764d
1 changed files with 6 additions and 3 deletions
|
@ -711,7 +711,7 @@ static void format_kill(FormattedSyscallBuilder& builder, pid_t pid_or_pgid, int
|
||||||
builder.add_argument(signal);
|
builder.add_argument(signal);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ErrorOr<void> format_syscall(FormattedSyscallBuilder& builder, Syscall::Function syscall_function, syscall_arg_t arg1, syscall_arg_t arg2, syscall_arg_t arg3, syscall_arg_t res)
|
static ErrorOr<void> format_syscall(FormattedSyscallBuilder& builder, Syscall::Function syscall_function, syscall_arg_t arg1, syscall_arg_t arg2, syscall_arg_t arg3, syscall_arg_t arg4, syscall_arg_t res)
|
||||||
{
|
{
|
||||||
enum ResultType {
|
enum ResultType {
|
||||||
Int,
|
Int,
|
||||||
|
@ -810,7 +810,7 @@ static ErrorOr<void> format_syscall(FormattedSyscallBuilder& builder, Syscall::F
|
||||||
case SC_gettid:
|
case SC_gettid:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
builder.add_arguments((void*)arg1, (void*)arg2, (void*)arg3);
|
builder.add_arguments((void*)arg1, (void*)arg2, (void*)arg3, (void*)arg4);
|
||||||
result_type = VoidP;
|
result_type = VoidP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -914,17 +914,20 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
syscall_arg_t arg1 = regs.rdx;
|
syscall_arg_t arg1 = regs.rdx;
|
||||||
syscall_arg_t arg2 = regs.rdi;
|
syscall_arg_t arg2 = regs.rdi;
|
||||||
syscall_arg_t arg3 = regs.rbx;
|
syscall_arg_t arg3 = regs.rbx;
|
||||||
|
syscall_arg_t arg4 = regs.rsi;
|
||||||
#elif ARCH(AARCH64)
|
#elif ARCH(AARCH64)
|
||||||
syscall_arg_t syscall_index = 0; // FIXME
|
syscall_arg_t syscall_index = 0; // FIXME
|
||||||
syscall_arg_t arg1 = 0; // FIXME
|
syscall_arg_t arg1 = 0; // FIXME
|
||||||
syscall_arg_t arg2 = 0; // FIXME
|
syscall_arg_t arg2 = 0; // FIXME
|
||||||
syscall_arg_t arg3 = 0; // FIXME
|
syscall_arg_t arg3 = 0; // FIXME
|
||||||
|
syscall_arg_t arg4 = 0; // FIXME
|
||||||
TODO_AARCH64();
|
TODO_AARCH64();
|
||||||
#elif ARCH(RISCV64)
|
#elif ARCH(RISCV64)
|
||||||
syscall_arg_t syscall_index = 0; // FIXME
|
syscall_arg_t syscall_index = 0; // FIXME
|
||||||
syscall_arg_t arg1 = 0; // FIXME
|
syscall_arg_t arg1 = 0; // FIXME
|
||||||
syscall_arg_t arg2 = 0; // FIXME
|
syscall_arg_t arg2 = 0; // FIXME
|
||||||
syscall_arg_t arg3 = 0; // FIXME
|
syscall_arg_t arg3 = 0; // FIXME
|
||||||
|
syscall_arg_t arg4 = 0; // FIXME
|
||||||
TODO_RISCV64();
|
TODO_RISCV64();
|
||||||
#else
|
#else
|
||||||
# error Unknown architecture
|
# error Unknown architecture
|
||||||
|
@ -958,7 +961,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
FormattedSyscallBuilder builder(syscall_name);
|
FormattedSyscallBuilder builder(syscall_name);
|
||||||
TRY(format_syscall(builder, syscall_function, arg1, arg2, arg3, res));
|
TRY(format_syscall(builder, syscall_function, arg1, arg2, arg3, arg4, res));
|
||||||
|
|
||||||
TRY(trace_file->write_until_depleted(builder.string_view().bytes()));
|
TRY(trace_file->write_until_depleted(builder.string_view().bytes()));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue