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
|