On 11/01, trisha yad wrote:
> Dear all,
> I am running a multithreaded application. So consider a global
> variable x which is used by a, b and c thread.
> In thread 'a' do abnormal operation(invalid memory access) and kernel
> send signal kill to it. In the mean time Thread 'b' and Thread 'c'
> got schedule and update
> the variable x. when I got the core file, variable x got updated, and
> I am not getting actual value that is present at time of crash of
> thread a.
> But In core file I got updated value of x. I want In core file exact
> the same memory status as it at time of abnormal operation(invalid
> memory access)
Yes, this is possible.
> Is there any solution for such problem. ?
> I want in core dump the same status of memory as at time of abnormal
> operation(invalid memory access).
I don't think we can "fix" this.
We can probably change complete_signal() to notify other threads
"immediately", but this is not simple and obviously can not close
the window completely.
Whatever we do, we can't "stop" other threads at the time when
thread 'a' traps. All we can do is to try to shrink the window.