Branch: refs/heads/sigtrampoline
Home: https://github.com/dyninst/dyninst
Commit: 4c9a4cb04417ce89f23ab4098a59b812833cf299
https://github.com/dyninst/dyninst/commit/4c9a4cb04417ce89f23ab4098a59b812833cf299
Author: Xiaozhu Meng <mxz297@xxxxxxxxx>
Date: 2021-02-01 (Mon, 01 Feb 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:
-----------
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.
|