Hi, I have difficulty catching std::bac_alloc in an MPI environment. The code is attached. I'm uisng gcc 6.3 on SUSE Linux Enterprise Server 11 (x86_64). mpich is built from source. The commands are as follows: *Build* g++ -I<mpich-3.3-opt/include> -L<mpich-3.3-opt/lib> -lmpi memory.cpp *Run* <mpich-3.3-opt/bin/mpiexec> -n 2 a.out *Output* 0 0 1 1 =================================================================================== = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 16067 RUNNING AT <machine name> = EXIT CODE: 9 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES =================================================================================== YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Killed (signal 9) This typically refers to a problem with your application. Please see the FAQ page for debugging suggestions If I uncomment the line //if (rank == 0), i.e., only rank 0 allocates memory, I'm able to catch bad_alloc as I expected. It seems that I am misunderstanding something. Could you please help? Thanks a lot. Best regards, Zhen