[DynInst_API:] [dyninst/dyninst] 091929: Improve syscall and interrupt instruction detectio...


Date: Mon, 26 Feb 2024 08:38:17 -0800
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 091929: Improve syscall and interrupt instruction detectio...
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 091929d6889211d50b5e12618e98972c38e268fa
      https://github.com/dyninst/dyninst/commit/091929d6889211d50b5e12618e98972c38e268fa
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M instructionAPI/src/InstructionCategories.C
    M parseAPI/src/IA_aarch64.C
    M parseAPI/src/IA_power.C
    M parseAPI/src/IA_x86.C

  Log Message:
  -----------
  Improve syscall and interrupt instruction detection (#1686)

* Treat x86 software interrupts as system calls

* Correct detection of Linux vsyscall for 32-bit code

The existing code did not work because the Operand formatter uses AT&T
syntax and doesn't convert hex to decimal, so the '== "16"' check
always failed.

The convoluted logic in the visitor is needed because Dyninst does not
generate AST for segment registers. Yet, it _does_ record if they are
read/written.

The AST for the 'gs' register was made a file scope static because its
initialization would cause some glibc's to throw a
__gnu_cxx::recursive_init_error when using multiple threads.

* aarch64 - add svc

Supervisor Call

* ppc - add system call

* Add int1, into to IA_x86::isInterrupt



To unsubscribe from these emails, change your notification settings at https://github.com/dyninst/dyninst/settings/notifications
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 091929: Improve syscall and interrupt instruction detectio..., Tim Haines <=