Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Tarassov2019-02-15 21:18:11 +0000
committerEugene Tarassov2019-02-15 21:18:11 +0000
commita5ad3417297bfe1c3e69a4faeb7acecf1038d3e0 (patch)
treeaed400ab2cb32591b7c2ff639c6456f2589f0b59 /agent/system
parentc7bcdf7cd513161faf3f937bed53cd0ed211f814 (diff)
downloadorg.eclipse.tcf.agent-a5ad3417297bfe1c3e69a4faeb7acecf1038d3e0.tar.gz
org.eclipse.tcf.agent-a5ad3417297bfe1c3e69a4faeb7acecf1038d3e0.tar.xz
org.eclipse.tcf.agent-a5ad3417297bfe1c3e69a4faeb7acecf1038d3e0.zip
TCF Agent: fixed: SIGILL is ignored for Linux threads other than main thread
Diffstat (limited to 'agent/system')
-rw-r--r--agent/system/GNU/Linux/tcf/context-linux.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/agent/system/GNU/Linux/tcf/context-linux.c b/agent/system/GNU/Linux/tcf/context-linux.c
index d19487be..c9e500fb 100644
--- a/agent/system/GNU/Linux/tcf/context-linux.c
+++ b/agent/system/GNU/Linux/tcf/context-linux.c
@@ -1592,7 +1592,7 @@ static void event_pid_stopped(pid_t pid, int signal, int event, int syscall) {
sigset_set(&ctx->pending_signals, signal, 1);
#if defined(__arm__)
/* On ARM, Linux kernel appears to use SIGILL to lazily enable vector registers */
- if (signal == SIGILL && !ext->crt0_done) {
+ if (signal == SIGILL && !EXT(ctx->mem)->crt0_done) {
/* Ignore */
}
else
@@ -1796,7 +1796,7 @@ static void eventpoint_at_loader(Context * ctx, void * args) {
static void eventpoint_at_main(Context * ctx, void * args) {
if (EXT(ctx)->pid == 0) return;
- EXT(ctx)->crt0_done = 1;
+ EXT(ctx->mem)->crt0_done = 1;
send_context_changed_event(ctx->mem);
memory_map_event_mapping_changed(ctx->mem);
if ((EXT(ctx)->attach_mode & CONTEXT_ATTACH_NO_MAIN) == 0) {

Back to the top