Is it possible for one thread to overwrite memory in another thread's stack? Hence possibly corrupting the return address for example.
If it is possible, are there any debugging tools or other practices to help detecting such problems?
I am talking about C/C++ applications using pthreads on a Linux x86 system.