OSDN Git Service

debuggerd: rethrow the full signal we receive, always.
authorJosh Gao <jmgao@google.com>
Tue, 8 Mar 2016 23:27:15 +0000 (15:27 -0800)
committerJosh Gao <jmgao@google.com>
Wed, 9 Mar 2016 22:56:37 +0000 (14:56 -0800)
commit61cf3f3e033d2d7d13b06e0ae009ff12db787860
tree2f1cc24ed373d507ccfcf9f55651969b12c54a78
parent55dc0c5eea04b13465951ef0354f9541123b0f94
debuggerd: rethrow the full signal we receive, always.

The previous code assumed that returning would be sufficient to rethrow
signals like SIGSEGV. This is not true, for example,  in the case where a
SIGSEGV is sent via kill(2). We were previously only sending the signal
to ourselves in some cases, because using kill(2) would lose information
in the siginfo_t argument. Use rt_tgsigqueueinfo(2) instead to preserve
its contents.

Bug: http://b/27367422
Change-Id: I1be822818d5905461979c7e12dc4e9c25049273b
linker/debugger.cpp
tests/signal_test.cpp