I found one thread of a multi-threaded application to be crashing in VxWorks. I don't have debug information. On deeper analysis I found that the crash is being caused due to a global memory address value being changed.
This global memory address (which is an address to a function. I am using a function pointer) is being stored at a particular address location in heap. I found that this global memory address itself is being reduced by 2, which leads to incorrect access and load instruction error.
This happens randomly. But, I am really surprised as to what can cause the address value to be reduced by 2.
Any guesses or ideas or pointers in any direction might be helpful.