[DynInst_API:] [dyninst/dyninst] 2f1aac: Factor out e_syscall check


Date: Mon, 19 Feb 2024 20:49:40 -0800
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 2f1aac: Factor out e_syscall check
  Branch: refs/heads/thaines/expand_syscall_detection
  Home:   https://github.com/dyninst/dyninst
  Commit: 2f1aac443570be473fb8b22231e0d3506c140c87
      https://github.com/dyninst/dyninst/commit/2f1aac443570be473fb8b22231e0d3506c140c87
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M parseAPI/src/IA_x86.C

  Log Message:
  -----------
  Factor out e_syscall check


  Commit: 426fcbc2007f3a3edef2731f4d54d27311d88fba
      https://github.com/dyninst/dyninst/commit/426fcbc2007f3a3edef2731f4d54d27311d88fba
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M parseAPI/src/IA_x86.C

  Log Message:
  -----------
  Remove old libc elf auxillary vector check

In some old 32-bit libc's, it was cheaper for the loader to put the
value of the kernel's system call entry point (AT_SYSINFO) into a fixed
location. One particular place was at 'gs:0x10'. That value was likely
taken from https://articles.manugarg.com/systemcallinlinux2_6.html. In
this case, 'call gx:0x10' iss really a system call.

However, the check implemented here would never work for two reasons.
First, Dyninst doesn't generate AST for the segment registers, so
'isRead(gs)' would always be false. Second, the Operand formatter uses
AT&T syntax and doesn't convert hex to decimal, so the '== "16"' check
always failed, as well.

Given this incorrect check and that the 0x10 offset wasn't guaranteed, I
think we should just remove it.


  Commit: 14c844213aab0a7d26ad0fc0caa129f0e74096c1
      https://github.com/dyninst/dyninst/commit/14c844213aab0a7d26ad0fc0caa129f0e74096c1
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M parseAPI/src/IA_x86.C

  Log Message:
  -----------
  Add check for 'int 0x80'


  Commit: 0d10c562071d3ca2cddde7b9f9a0e269b5a7e2b2
      https://github.com/dyninst/dyninst/commit/0d10c562071d3ca2cddde7b9f9a0e269b5a7e2b2
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M parseAPI/src/IA_aarch64.C

  Log Message:
  -----------
  aarch64 - add svc

Supervisor Call


  Commit: 7de5b11688dd0ebbd1caf15d026d9565c427e4fa
      https://github.com/dyninst/dyninst/commit/7de5b11688dd0ebbd1caf15d026d9565c427e4fa
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M parseAPI/src/IA_power.C

  Log Message:
  -----------
  ppc - add system call


Compare: https://github.com/dyninst/dyninst/compare/2f1aac443570%5E...7de5b11688dd

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] 2f1aac: Factor out e_syscall check, Tim Haines <=