Svante Signell, le lun. 28 janv. 2019 20:22:42 +0100, a ecrit: > $24 = {ss_sp = 0x9501c, ss_size = 45028, ss_flags = 1}
Actually these values look odd. You could check with a breakpoint whether sigaltstack() is really used to set these values. If that's not what sets it, there's possibly an overwrite from somewhere else. What you could then do is: gdb> b sigaltstack.c:55 gdb> c to get after sigaltstack() has made its duty (after __spin_unlock), and at that breakpoint, check *argss for the values that were supposed to be put into s->sigaltstack.ss_sp, and put a hardware watchpoint: gdb> p &s->sigaltstack.ss_sp $1 = (void **) 0x1030cd0 gdb> watch * (void **) 0x1030cd0 watching the address instead of the expression is important for the watch to be hardware-assisted. That way you'll get to see what modifies the ss_sp field. Samuel