Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDidier Brachet2013-03-07 14:05:17 +0000
committerDidier Brachet2013-03-07 14:05:17 +0000
commitd6a37e99f914fce04a71b64a6a7c49bc24682fc3 (patch)
treebb588e22bfe6d57b9c9cb437e1847304e98131ed
parentb217c1b4d14f5b24ed32f54fda7340901c3ca956 (diff)
downloadorg.eclipse.tcf.agent-d6a37e99f914fce04a71b64a6a7c49bc24682fc3.tar.gz
org.eclipse.tcf.agent-d6a37e99f914fce04a71b64a6a7c49bc24682fc3.tar.xz
org.eclipse.tcf.agent-d6a37e99f914fce04a71b64a6a7c49bc24682fc3.zip
TCF Agent: Fixed signal mask support for threads created during debug session
Fixed regression issue where signal mask was not correctly set for threads created by a debugged process. Those threads should have inherited the signal mask of the creator/process but it was no longer the case.
-rw-r--r--agent/system/GNU/Linux/tcf/context-linux.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/agent/system/GNU/Linux/tcf/context-linux.c b/agent/system/GNU/Linux/tcf/context-linux.c
index e9bc9b8f..28a36aa3 100644
--- a/agent/system/GNU/Linux/tcf/context-linux.c
+++ b/agent/system/GNU/Linux/tcf/context-linux.c
@@ -1069,10 +1069,12 @@ static Context * add_thread(Context * parent, Context * creator, pid_t pid) {
alloc_regs(ctx);
ctx->mem = parent;
ctx->big_endian = parent->big_endian;
- ctx->sig_dont_stop = ctx->sig_dont_stop;
- ctx->sig_dont_pass = ctx->sig_dont_pass;
ctx->creator = creator;
- if (creator) creator->ref_count++;
+ if (creator) {
+ ctx->sig_dont_stop = creator->sig_dont_stop;
+ ctx->sig_dont_pass = creator->sig_dont_pass;
+ creator->ref_count++;
+ }
(ctx->parent = parent)->ref_count++;
if (EXT(parent)->detach_req) {
ctx->exiting = 1;

Back to the top