Program terminated with SIGBUS signal

Hi all,
We have an embedded system running on QNX 7.0 on an ARM based platform. During a rigorous testing, one of my process coredumps.

Application is a simple one which is almost following example of qnx.com/developers/docs/7.0. … event.html

Difference is instead of using dumper_get_dumppath() function, we are removing some log files to save space and copying some log files to persistent partition using system() command. I could identify SIGBUS signal (I couldn’t identify any invalid misaligned memory accesses in this process ) and also corrupt stack (at the end of this trace). How could I get into rootcause of this? Is there any chance some other process running in the system can corrupt the memory and cause this stack corruption? And one thing to note: This is a random issue happening in the system.

My backtrace look like below:

Looking forward to your valuable thoughts.
Thank you,
Lullaby

It looks from the trace info that you have a 64 bit system.

Are you running the 32 or 64 bit version of the QNX 7 kernel?
Is your S/W compiled in 32 or 64 bit mode?
Are you are using the 32 or 64 bit versions of all the QNX utility/daemon programs (like dumper which you are attaching to) and shared libraries (like libc)?

If any of these are mixed 32/64 bit then it could very well explain the SIGBUS error.

Tim

P.S. No other process in the system can cause your stack to be corrupted because processes run in protected memory space. However if your application is multi-threaded it’s very possible for 1 thread to corrupt another one.