You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An assert failure is seen on DynamoRIO trying to take over a multi-threaded application using dr_app_start. Internal Error: DynamoRIO debug check failure: core/unix/signal.c:493 rc == 0
It happens if a thread has already setup the signal stack, and DR tries to take it over in the signal handler. In that case, the sigaltstack_syscall fails and returns -1, ([EPERM] An attempt was made to modify an active stack).
Clearly we need to add a delayed-takeover test that uses signals and sigaltstack.
2 solutions come to mind:
Don't set SA_ONSTACK but then reinstate after takeover init: feels slightly risky but if reinstating is before any swap then we're just assuming orig app stack which we're doing anyway.
Swap stacks either temporarily in takeover-init, or make the dstack early like some clone handling paths do and swap early -- though this will complicate the app state snapshot.
An assert failure is seen on DynamoRIO trying to take over a multi-threaded application using
dr_app_start
.Internal Error: DynamoRIO debug check failure: core/unix/signal.c:493 rc == 0
It happens if a thread has already setup the signal stack, and DR tries to take it over in the signal handler. In that case, the sigaltstack_syscall fails and returns -1, ([EPERM] An attempt was made to modify an active stack).
The text was updated successfully, but these errors were encountered: