Branch: refs/heads/master
Home: https://github.com/dyninst/dyninst
Commit: 7ce24bf14a7745492754adb5ede560dd343e6585
https://github.com/dyninst/dyninst/commit/7ce24bf14a7745492754adb5ede560dd343e6585
Author: Xiaozhu Meng <mxz297@xxxxxxxxx>
Date: 2021-04-21 (Wed, 21 Apr 2021)
Changed paths:
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/addressSpace.h
M dyninstAPI/src/binaryEdit.C
M dyninstAPI/src/dynProcess.C
M dyninstAPI_RT/src/RTposix.c
Log Message:
-----------
Allow usage of SIGILL for signal trampolines (#963)
We only used SIGTRAP as the signal for tramopline.
However, SIGTRAP is always intercepted by GDB, causing it is
almost impossible to debug through signal trampolines.
In this commit, we add a new environment variable DYNINST_SIGNAL_TRAMPOLINE_SIGILL
to control whether we use SIGILL as the signal for trampolines.
If DYNINST_SIGNAL_TRAMPOLINE_SIGILL is set, we use SIGILL as signal trampolines
and the mutator will generate illegal instructions in the mutatee.
In the case of binary rewriting, DYNINST_SIGNAL_TRAMPOLINE_SIGILL should be
consistently set or unset when rewriting the binary and running the rewritten binaries.
|