mpiP icon indicating copy to clipboard operation
mpiP copied to clipboard

unable to find source line info for address

Open czlovemath123 opened this issue 2 years ago • 5 comments

Sorry for leaving this message here because I do not know how to solve this problem.

I have tried using bfd and dwarf/elf to convert the binary to the source line number but all failed.

mpiP Configuration Summary

C compiler : mpicc C++ compiler : mpicxx Fortran compiler : mpif90

Timer : MPI_Wtime Stack Unwinding : libunwind Address to Source Lookup : bfd

MPI-I/O support : yes MPI-RMA support : yes MPI-NBC support : yes


mpiP Configuration Summary

C compiler : mpicc C++ compiler : mpicxx Fortran compiler : mpif90

Timer : MPI_Wtime Stack Unwinding : libunwind Address to Source Lookup : libelf/libdwarf

MPI-I/O support : yes MPI-RMA support : yes MPI-NBC support : yes


The source line of the output always look like this:

28 @--- Callsites: 4 --------------------------------------------------------- 29 --------------------------------------------------------------------------- 30 ID Lev File/Address Line Parent_Funct MPI_Call 31 1 0 0x7fe7d3ae7b2a [unknown] Recv 32 2 0 0x7f260692259a [unknown] Send 33 3 0 0x7f1637a7859a [unknown] Send 34 4 0 0x7f044e9dc59a [unknown] Send

Can someone point me to the right direction? Much appreciated!

czlovemath123 avatar Feb 19 '23 14:02 czlovemath123

I compiled the code with -g -L/path_to_libmpiP.so -lmpiP

czlovemath123 avatar Feb 19 '23 16:02 czlovemath123

请问你解决这个问题了吗

luozijun123 avatar Mar 16 '23 06:03 luozijun123

--disable-libunwind

Stack Unwinding: glibc-backtrace

2397798540 avatar Apr 25 '23 02:04 2397798540

Setting a higher k seems to help

sant0s12 avatar May 24 '24 12:05 sant0s12

I experienced a similar issue, and thanks to @schulzm, I traced this back to address randomization, which seems to be enabled by default in many distributions. This work around worked for me.

https://askubuntu.com/questions/318315/how-can-i-temporarily-disable-aslr-address-space-layout-randomization

The background is that the address-to-source translation in mpiP seems to only happen on one of the MPI processes (e.g., rank 0), assuming that the addresses are the same on different processes. Address randomization breaks this assumption.

amir-raoofy avatar Jun 10 '24 15:06 amir-raoofy